理解这几个安全漏洞,你也能做安全测试【干货建议收藏】
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标志位,且要与用户身份强绑定。
特殊场景:密码修改/重置流程跳跃
漏洞描述
密码修改功能常采用分步骤方式来实现,攻击者在未知原始密码的情况下绕过某些检验步骤修改用户密码。
渗透测试
完成修改/重置密码的正常流程,判断验原密码步骤成功的标识是否可伪造
绕过检验原密码等步骤,直接访问输入新密码接口,输入新密码,修改/重置密码。
风险评级:高风险
安全建议
一次性填写校验信息(原始密码、新密码等)后再提交修改/重置密码请求
最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!推荐软件测试交流学习群:914172719 里面会分享一些资深架构师录制的视频录像
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
理解这几个安全漏洞,你也能做安全测试【干货建议收藏】相关推荐
- Database之SQLSever:SQLSever数据库管理学习并深入理解SQL命令语句进阶综合篇《初级→中级→高级》(持续更新,建议收藏)
Database之SQLSever:SQLSever数据库管理学习并深入理解SQL命令语句进阶综合篇<初级→中级→高级>(持续更新,建议收藏) 目录 SQLSever数据库管理学习并深入理 ...
- 【建议收藏】这个工具专门用于寻找路由器中的安全漏洞
关于工具 现有工具 现在,现成的污点分析工具已经有很多了.其中,我最感兴趣的是Triton和bincat,因为两者已经相当成熟.然而,我们却无法使用这两种工具,因为它们不支持目标设备所使用的MIPS架 ...
- 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!
https://www.eet-china.com/news/202109291008.html 2021-09-29破解小米"铁蛋",只需9999元,你也可以做一个四足机器人! ...
- 【建议收藏】这个工具专门用于寻找路由器中的安全漏洞.md
关于工具 现有工具 现在,现成的污点分析工具已经有很多了.其中,我最感兴趣的是Triton和bincat,因为两者已经相当成熟.然而,我们却无法使用这两种工具,因为它们不支持目标设备所使用的MIPS架 ...
- 你对别人讲诚信,同时,你也要做一些防范措施,别人不讲诚信的时候你怎么办
http://v.baidu.com/link?url=dm_00pw_klemzFaU2vO4w7zo2Cc1yuX_dCEHtgd-yB9KwhC-tqPQIQDpRyAWhj_g_-L8yyU3 ...
- 【建议收藏系列】爆肝3w字带你理解什么叫运维~
什么是运维 目录 什么是运维 术语名词 管理 规划 优化 安全 告警 监控 系统/平台 规范 linux发行版 运维第一工具-shell编程 shell历史 执行脚本 基本语法 变量 文件名代换(Gl ...
- 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧
前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...
- 12月第四周安全回顾:双节期间微软忙补新漏洞,新Hash将测试
本文同时发表在:[url]http://netsecurity.51cto.com/art/200901/104600.htm[/url] 本周(081222至081228)安全业界放假不放松,由于本 ...
- 《深入理解 Java 内存模型》读书笔记(上)(干货,万字长文)
目录 0. 前提 1. 基础 1.1 并发编程的模型分类 1.1.1 通信 1.1.2 同步 1.2 JAVA 内存模型的抽象 2. 重排序 2.1 处理器重排序 2.2 内存屏障指令 2.3 HAP ...
最新文章
- mysql循环查到没数据库_【mysql】在for循环里使用多线程查询数据库
- iOS 10 消息推送(UserNotifications)秘籍总结(二)
- 16个让你烧脑让你晕的悖论
- 软件项目经理应该具备的心态
- 【Linux】Linux内核的整体架构简介
- 添加游戏到游戏浏览器中的小工具
- 通俗易懂的机器学习入门
- 软考中级——系统集成项目管理工程师 知识点思维导图
- 技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流
- KYLO的JVM知识总结
- 腾讯云服务器怎么增加容量,腾讯云服务器磁盘扩容问题小记
- 阳光长跑(阳光体育服务平台)
- mac转换pin计算机,MAC对应PIN码表-2012.3.4整理
- extjs 中formPanel提交到action后返回json数据到ext中,但是ext页面不进入sucess也不进入failure
- virt-install命令参数
- linux系统安装windows字体
- odom协方差初始化
- python中del什么意思_python del函数是什么以及如何使用?
- tensorflow中axis理解非常重要
- 百度地图 路书动态加载规划
热门文章
- excel粘贴时出现故障_Workfine——快速整理数据的能力甩了excel几条街
- windows下运行python打印有颜色的字_Windows和Linux下Python输出彩色文字的方法教程...
- 【Python制作小游戏】一篇文章带你做出自己的“大鱼吃小鱼”
- java共同方法_java-现有公共方法的NoSuchMethodError
- php 8.0 jit,PHP 8.0 正式版发布,性能提升 10%
- 创建目录 java_java创建文件和目录
- Python+OpenCV:仿射变换和透射变换
- MFC的Dialogbox多行文本框(CEdit)有最大字符限制,默认最大显示长度
- 【Hadoop Summit Tokyo 2016】数据流与Apache NiFi
- qml WebEngineView zoomFactor 性质设置问题