理解这几个安全漏洞,你也能做安全测试

01 短信炸弹

1、漏洞描述

短信轰炸攻击是常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的获取后,进行重放,如果服务器短信平台未做校验的情况时,系统会一直去发送短信,这样就造成了短信轰炸的漏洞。

2、渗透测试

手工找到有关网站注册页面,认证页面,是否具有短信发送页面,如果有则进行下一步。

通过利用burp或者其它抓包截断工具,抓取发送验证码的数据包,并且进行重放攻击,查看手机是否在短时间内连续收到10条以上短信,如果收到大量短信,则说明存在该漏洞。

3、风险评级

可对任意手机号轰炸判定为高风险

只可对当前手机号轰炸或单个手机号码做了限制,但变换手机号码仍然可以不断发送的,判定为低风险。

4、安全建议

合理配置后台短信服务器的功能,对于同一手机号码,同一验证发送次数不超过5-10次,且对发送时间间隔做限制

当发送超过一定次数(可以为0),加入验证码验证。

02 邮件炸弹

1、漏洞描述

应用系统未限制邮件的发送次数和频率,造成短时间内大量邮件发送至接收者邮箱,造成大量垃圾邮件。

2、渗透测试

手工找到有关网站注册页面,认证页面,是否具有邮件发送页面,如果有则进行下一步

通过利用burp或者其它抓包截断工具,抓取发送邮件的数据包,并且进行重放攻击,查看邮箱是否在短时间内连续收到10封以上邮件,如果收到大量邮件,则说明存在该漏洞

图片

3、风险评级

可对任意邮箱轰炸,判定为高风险。

只可对当前邮箱轰炸,判定为低风险。

4、安全建议

合理配置后台邮件服务器的功能,对于同一邮箱,同一验证发送次数不超过5-10次,且对发送的时间间隔做限制。

当发送超过一定次数(可以为0),加入验证码验证。

03 短信定向转发

1、漏洞描述

短信接收人可任意指定

2、渗透测试

拦截发送短信的请求,将手机号改为测试人员的手机号,测试是否可接收短信验证码。

3、风险评级:高风险

4、安全建议

发送短信时手机号从当前会话中获取,避免从前端传入

用户的手机号不能随意变动,需要认证过程。

04 邮件可定向转发

1、漏洞描述

应用系统发送邮件的接收人可由客户端任意指定

2、渗透测试

拦截发送邮件的请求,将接收人邮箱改为测试人员的邮箱地址,测试是否可接收邮件。

3、风险评级:高风险

4、安全建议

发送邮件时邮箱从当前会话中获取,避免从前端传入

用户的邮箱不能随意变动,需要认证过程。

05 任意用户密码修改/重置

1、漏洞描述

可通过篡改用户名或ID、暴力破解验证码等方式修改/重置任意账户的密码。

2、渗透测试

密码修改的步骤一般是先校验用户原始密码是否正确,再让用户输入新密码。

修改密码机制绕过方式大概有以下三种:

如果输入新密码的接口可以直接访问,那么在未知原始密码的的情况下即可直接修改密码,通常知道了他人的用户名即可任意修改他人的密码。

如果系统未校验修改密码的用户身份,那么在提交修改密码请求时,攻击者通过输入密码,将用户名或者用户ID修改为其他人的,即可成功修改他人的密码。

当修改密码时系统需要电子邮件或者手机短信确认,而应用程序未校验用户输入的邮箱和手机号,那么攻击者通过填写自己的邮箱或手机号接收修改密码的链接和验证码,以此修改他人的密码。

图片

密码重置机制绕过攻击方式主要有以下两种:

通过正常手段获取重置密码的链接,猜解链接的组成结构和内容(如用户名或者时间戳的MD5值)。在得知他人邮箱的情况下,构造重置他人密码的链接。

在得知他人手机号的情况下,通过穷举手机验证码重置他人的密码。

3、风险评级:高风险

4、安全建议

一次性填写校验信息(原始密码、新密码等)后再提交修改密码请求

对客户端提交的修改密码请求,应对请求的用户身份与当前登录的用户身份进行校验,判断是否有权修改用户的密码

使用手机或邮箱进行验证时,要与修改密码的用户一一对应,且验证码仅一次有效,验证之后即失效,避免暴力破解

对原始密码进行了验证的情况下,限制输入原始密码的错误次数,防止攻击者暴力破解原始密码

重置密码链接中的关键信息应随机化,不可预测(例如token机制),且禁止将关键信息返回到客户端

06 SSO认证缺陷

1、漏洞描述

SSO认证存在缺陷,可越权登录他人账户。

2、渗透测试

信息传输缺乏安全保证

SSO认证通信过程中大多数采用明文形式传送敏感信息,这些信息很容易被窃取,致使重要信息泄露。另外,在通信过程中大多数场景没有对关键信息进行签名,容易遭到伪装攻击

利用Web服务的安全缺陷

由于单点登录基本上是基于Web服务实现的,所以也不可避免的存在Web服务的安全缺陷,如跨站脚本攻击、越权攻击等

3、风险评级:高风险

4、安全建议

建议在不影响业务的前提下,使用HTTPS协议传输

严格校验SSO认证过程中的用户身份

过滤用户传入的参数,对特殊符号进行转义或屏蔽

07 越权

1、漏洞描述

越权访问,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者在获得低权限用户帐号后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。其与未授权访问有一定差别。

2、渗透测试

以超管 admin(高权限用户) 身份登录系统

找到一个只有超管(高权限)才有的功能的链接,比如:“http://localhost/userManage/userList.do” , 显示出所有的user,并复制此链接。

以普通用户登陆进系统,在地址栏输入:userManage/userList.do,确认是否可以查看到其所有的user

还可以测试同级别用户的横向越权访问

3、风险评级:高风险

4、安全建议

对用户操作进行权限校验,防止通过修改参数进入未授权页面及进行非法操作,建议在服务端对请求的数据和当前用户身份做一个校验检查。

08 恶意锁定问题

1、漏洞描述

通过不断的输入错误的密码可恶意锁定任意账号

2、渗透测试

针对测试账户,不断输入错误的密码,直至将其锁定。

3、风险评级:

锁定账户之后,可继续使用认证功能,导致可批量自动化账户锁定,为中风险。

锁定账户之后,可继续使用认证功能,但认证存在防自动化功能,为低风险。

4、安全建议

账户锁定之后应不能继续使用认证功能,如对请求IP进行一个限制,一段时间之后才可以继续尝试认证

认证功能防自动化操作,如添加图形验证码。

09 负值反冲/正负值对冲

1、漏洞描述

应用程序未校验订单数据的取值范围,交易存在负值反冲或正负值对冲

2、渗透测试

提交订单时拦截请求,修改订单参数为负数,如商品单价、数量、总价等。

提交订单(包含多种商品)时拦截请求,修改部分商品的单价或数量,保证订单总金额为正数。

3、风险评级:高风险

4、安全建议

服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

服务器端对客户端提交的交易数据(如商品ID、商品数量、商品价格等)的取值范围进行校验,将商品ID和商品价格与数据库中的数据对比校验,商品数量为大于零的整型数。

服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

010 业务流程跳跃

1、漏洞描述

业务逻辑流程分步骤进行且能越过中间校验步骤直接进行后续操作,导致中间校验等步骤失效。

2、渗透测试

首先完成正常的业务逻辑步骤,获取每一个步骤的请求;

绕过中间步骤,直接访问最后一个或几个验证请求,看是否可绕过。

3、风险评级:高风险

4、安全建议

建议在不影响业务的前提下,在Session中添加对每一步流程页面的校验标志位,在新步骤页面浏览过程前要检测之前每一步的session标志位,且要与用户身份强绑定。

图片

特殊场景:密码修改/重置流程跳跃

漏洞描述

密码修改功能常采用分步骤方式来实现,攻击者在未知原始密码的情况下绕过某些检验步骤修改用户密码。

渗透测试

完成修改/重置密码的正常流程,判断验原密码步骤成功的标识是否可伪造

绕过检验原密码等步骤,直接访问输入新密码接口,输入新密码,修改/重置密码。

风险评级:高风险

安全建议

一次性填写校验信息(原始密码、新密码等)后再提交修改/重置密码请求

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】
在这里插 入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/717463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM内部世界(内存划分,类加载,垃圾回收)

💕"Echo"💕 作者:Mylvzi 文章主要内容:JVM内部世界(内存划分,类加载,垃圾回收) 关于JVM的学习主要掌握三方面: JVM内存区的划分类加载垃圾回收 一.JVM内存区的划分 当一个Java进程开始执行时,JVM会首先向操作系统申…

实例驱动计算机网络

文章目录 计算机网络的层次结构应用层DNSHTTP协议HTTP请求响应过程 运输层TCP协议TCP协议面向连接实现TCP的三次握手连接TCP的四次挥手断开连接 TCP协议可靠性实现TCP的流量控制TCP的拥塞控制TCP的重传机制 UDP协议 网际层IP协议(主机与主机)IP地址的分类…

【创作回顾】17个月峥嵘创作史

#里程碑专区#、#创作者纪念日# 还记得 2022 年 10 月 05 日,我在CSDN撰写了第 1 篇博客——《关于测试工程师瓶颈和突围的一个思考》,也是我在全网发布的第一篇技术文章。 回想当时,这一篇的诞生过程并不轻松,不像是一篇网络文章…

【计算机网络】深度学习HTTPS协议

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【计算机网络】深度学习HTTPS协议 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 一:HTTPS是什么二:HTTPS的工作过程三:对称加密四:非对称加密五:中间人攻击1…

【web | CTF】BUUCTF [HCTF 2018]WarmUp

天命&#xff1a;这题本地php代码是无法复现的 首先打开网站&#xff0c;啥也没有&#xff0c;查看源码 发现文件&#xff0c;打开访问一下看看&#xff0c;发现是代码审计 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whit…

【学习总结】什么是DoS和DDoS

[Q&A] 什么是DoS DoS 是 “Denial of Service”&#xff08;拒绝服务&#xff09;的缩写&#xff0c;它是一种网络攻击方式&#xff0c;其目的是使目标计算机或网络资源无法为合法用户提供正常的服务。通过向目标系统发送大量请求、消耗其带宽、处理器或内存等资源&#…

13 双口 RAM IP 核

双口 RAM IP 核简介 双口 RAM IP 核有两个端口&#xff0c;它又分为伪双端口 RAM 和真双端口 RAM&#xff0c;伪双端口 RAM 一个端口只能读&#xff0c;另一个端口只能 写&#xff0c;真双端口 RAM 两个端口都可以进行读写操作。同时对存储器进行读写操作时就会用到双端口 RAM…

unity-1

创建游戏对象&#xff08;游戏物体&#xff09; 可通过unity中的菜单栏中的Gameobject创建&#xff1b;也可在Hierarchy&#xff08;层级&#xff09;中创建&#xff0c; 双击即可居中看到。 在Hierarchy空白处右键即可看到&#xff0c;能创建游戏对象。 在Scene框中&#x…

BioTech - ADMET的性质预测 概述

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/136438192 ADMET&#xff0c;即 Absorption、Distribution、Metabolism、Excretion、Toxicity&#xff0c;吸收、分布、代谢、排泄、毒性…

Linux shell:补充命令的使用

目录 一.导读 二.正文 三.结语 一.导读 上一篇介绍了脚本的简单概念以及使用&#xff0c;现在补充一些命令。 二.正文 目前处于全局目录&#xff0c;通过mkdir创建名我为day01的文件。 通过cd命令day01 切换至day01文件当中。 使用vim文本编辑器文件名&#xff08;firstdir&…

【Python】进阶学习:pandas--query()用法详解

&#x1f4da;【Python】进阶学习&#xff1a;pandas–query()用法详解 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希…

LeetCode --- 无重复字符的最长子串

题目描述 无重复字符的最长子串 找到无重复的最长连续字符串。 示例1中 abc | bca | cab 都符合题意。输出3即可。 代码 可以使用暴力枚举 哈希表&#xff0c;哈希表来判断是否重复&#xff0c;枚举来判断每一种情况&#xff0c;需要开两层for循环&#xff0c;时间复杂度n…

linux高级编程:线程(二)、进程间的通信方式

线程&#xff1a; 回顾线程&#xff08;一&#xff09;&#xff1a; 1.线程间通信问题 线程间共享同一个资源&#xff08;临界资源&#xff09; 互斥&#xff1a; 排他性访问 linux系统 -- 提供了Posix标准的函数库 -- 互斥量&#xff08;互斥锁&#xff09; 原子操作&#x…

Bililive-go 实现直播自动监控录制

前言 最近有直播录制的需求&#xff0c;但是自己手动录制太麻烦繁琐&#xff0c;于是用了开源项目Bililive-go进行全自动监控录制&#xff0c;目前这个项目已经有3K stars了 部署 为了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…

javascript实现的星座查询

今天在这个网站http://xzxys.wiicha.com/看到查询星座幸运色的效果&#xff0c;想研究一下代码&#xff0c;结果右键禁用。后来参考了一下别人的代码&#xff0c;琢磨着先实现了一下星座查询的功能&#xff0c;输入月份和日期四位数后&#xff0c;可以查询属于哪个星座&#xf…

群体风暴之锤(War3地图编辑器)

文章目录 0、大致原理1、创建隐形单位2、新事件开端3、环境→新条件4、动作4.1、单位组4.1.1、圆范围内单位4.1.2、指定条件 4.2、对单位组内的所有单位释放风暴之锤 0、大致原理 真MK向目标点释放风暴之锤时选定&#xff08;以技能释放点为圆心&#xff0c;设定半径&#xff0…

Python编程语言常用的包管理工具介绍

conda是一个开源的包管理器和环境管理器&#xff0c;用于安装、运行和更新包和它们的依赖项。conda可以用于Python编程语言&#xff0c;但它也支持其他编程语言。conda的主要特点是它能够在不同的环境中管理不同的包集合&#xff0c;这使得它非常适合于数据科学和机器学习项目&…

详解算法的时间复杂度和空间复杂度!

目录 ​编辑 1. 算法效率 2. 时间复杂度 2.1 时间复杂度的概念 2.2 大O的表示渐进法 2.3 一个栗子 3. 空间复杂度 4. 常见复杂度对比 5. 完结散花 ​​​​​​​ 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们有…

STM32标准库开发——FLASH闪存

FLASH介绍 一般来说&#xff0c;宣传的FLASH的大小只是说程序存储器的大小&#xff0c;不包括系统存储器以及选项字节这俩个部分 IAP是内置在boot loader中的一道程序&#xff0c;可以用于辅助下载&#xff0c;用户可以通过有线通信协议或者无线协议实现对程序的更新升级。 FLA…

如何使用grafana 下JSON API访问展示接口数据

一.新增connection 点击左侧菜单栏&#xff0c;选择Add new connection 下载安装即可。 二. 增加对应url和参数 1. 添加新的数据源 2. 配置对应url 3.新建仪表盘和添加接口url和参数等