目录
验证码突破-回传显示&规律爆破
某目标回显显示
某APP验证码爆破
验证目标-重定向用户&重定向发送
某CMS重定向用户
某CMS重定向发送
验证逻辑-修改响应包&跳过步骤URL
某APP修改响应包
某APP跳过步骤URL
实战SRC验证逻辑挖掘分享案例
短信验证码回传显示
修改用户对象重置任意用户
修改响应包重置任意用户
未验证导致重置任意用户
某SRC重定向验证邮箱绕过
某SRC配合信息泄漏重置绕过
知识点:
1、找回修改机制-验证码突破-回传显示&规律爆破
2、找回修改机制-验证目标-重定向用户&重定向发送
3、找回修改机制-验证逻辑-修改响应包&跳过步骤URL
验证码突破-回传显示&规律爆破
某目标回显显示
通过手机找回密码,响应包中包含短信验证码。
某APP验证码爆破
找回密码时使用位数较少的短信验证码,或者验证码没有设置有效时间限制,导致攻击者借助自动化工具在一定时间范围内爆破获得短信验证码,从而导致重置任意账号密码。
该APP实际上是发送6位验证码,但是并没有时间限制
验证目标-重定向用户&重定向发送
某CMS重定向用户
当我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码,输入密码后提交到服务端的post数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户ID来标识用户身份的,如果这个用户名或用户ID没有和当前手机号、短信验证码进行绑定。也就是说服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。当然可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。
某CMS重定向发送
如果数据包存在发送验证邮箱或目标地址,尝试修改到自己接受地,实现拦截获取
验证逻辑-修改响应包&跳过步骤URL
某APP修改响应包
通过手机找回密码一般需要短信验证码验证,服务端需要告诉客户端,输入的验证码是否正确,如果客户端收到true的信息,那么就会向带着true的信息向服务端请求进入下一步,而服务端收到true的信息,就会允许客户端进入下一步,反之,如果是false的信息,服务端就不会允许客户端进入下一步。也就是说我们进入下一步的关键是让服务端收到客户端的true信息,而借助burpsuite,我们可以修改服务端返回到客户端的信息,这样一来,我们就可以输入任意短信验证码,然后将服务端返回的false信息改为true就可以绕过短信验证码的验证了。
或者直接替换掉整个响应包(自己先注册一个用户走一遍密码找回流程,然后重点关注这个验证手机验证码的响应数据包)
某APP跳过步骤URL
找回密码流程一般需要四个步骤:
流程:验证用户名-验证短信验证码-输入新密码-重置成功
这四个步骤应该紧紧相连,互相相关,只有通过了第一个步骤验证才可以进入下一个步骤,如果每个步骤之间没有进行关联性验证,就可能导致跳过关键验证步骤,从而导致重置任意账号密码。
实战SRC验证逻辑挖掘分享案例
短信验证码回传显示
修改用户对象重置任意用户
修改响应包重置任意用户
把false
改为true
绕过
未验证导致重置任意用户
最终只需要修改r为其他用户ID,即可重置其他用户密码。
某SRC重定向验证邮箱绕过
https://mp.weixin.qq.com/s/zsHHSXZHaLmiJFkgsjoHKg
某SRC配合信息泄漏重置绕过
https://xz.aliyun.com/t/11757#toc-0