笔记:
验证码突破:回传的时候泄露了发送的验证码导致不需要知道目标的验证码是多少直接使用数据包里面的队列
规律爆破:就是常见的数字四位或者六位 10000 种可能在规定时间内爆破或者多次验证后网站不会出现新的验证码没有次数限制可以尝试爆破或者是汉字进行
重定向用户:通过找回密码的方式 a 收到验证码通过修改数据包修改了 b 的账号和密码
冲定向发送:如果数据包存在发送验证邮箱或目标地址,尝试修改到自己接受地,实现拦截获取
例子如下在数据包中找到能有访问外部地址的地方尝试修改外部地址监听数据包如下图返回一个修改密码的链接
漏洞成因:只在前端做了验证码验证
演示案例:
➢ 验证码突破-回传显示&规律爆破
➢ 验证目标-重定向用户&重定向发送
➢ 验证逻辑-修改响应包&跳过步骤URL
第74-1天:实战SRC验证逻辑挖掘分享案例
#验证码突破-回传显示&规律爆破
演示:某APP验证码爆破 某目标回显显示
1、通过手机找回密码,响应包中包含短信验证码。
2、找回密码时使用位数较少的短信验证码,或者验证码没有设置有效时间限制,导致攻击者借助自动化工具在一定时间范围内爆破获得短信验证码,从而导致重置任意账号密码。#验证目标-重定向发送&重定向用户
演示:某CMS重定向用户 某CMS重定向发送
1、当我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码,输入密码后提交到服务端的post数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户ID来标识用户身份的,如果这个用户名或用户ID没有和当前手机号、短信验证码进行绑定。也就是说服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。当然可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。
2、如果数据包存在发送验证邮箱或目标地址,尝试修改到自己接受地,实现拦截获取#验证逻辑-修改响应包&跳过步骤URL
演示:某APP修改响应包 某APP跳过步骤URL
1、通过手机找回密码一般需要短信验证码验证,服务端需要告诉客户端,输入的验证码是否正确,如果客户端收到true的信息,那么就会向带着true的信息向服务端请求进入下一步,而服务端收到true的信息,就会允许客户端进入下一步,反之,如果是false的信息,服务端就不会允许客户端进入下一步。也就是说我们进入下一步的关键是让服务端收到客户端的true信息,而借助burpsuite,我们可以修改服务端返回到客户端的信息,这样一来,我们就可以输入任意短信验证码,然后将服务端返回的false信息改为true就可以绕过短信验证码的验证了。
2、找回密码流程一般需要四个步骤:
流程:验证用户名-验证短信验证码-输入新密码-重置成功
这四个步骤应该紧紧相连,互相相关,只有通过了第一个步骤验证才可以进入下一个步骤,如果每个步骤之间没有进行关联性验证,就可能导致跳过关键验证步骤,从而导致重置任意账号密码。
涉及资源:
补充:涉及录像课件资源软件包资料等下载地址