Web攻防-机制验证篇&重定向发送&响应状态码&跳过步骤&验证码回传&枚举

Web攻防-机制验证篇&重定向发送&响应状态码&跳过步骤&验证码回传&枚举

知识点:

1、验证码突破-回归显示&规律爆破

2、验证目标-重定向用户&重定向发送

3、验证逻辑-修改相应包&跳过步骤URL

4、演示案例-SRC验证逻辑挖掘实战

一、演示案例-验证码突破-回归显示&规律爆破

目标回显显示

如响应包中有短信验证码

验证码爆破

直接六位不断发包就行了

总结:

二、演示案例-验证目标-重定向用户&重定向发送

重定向用户

当我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码,输入密码后提交到服务端的post数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户ID来标识用户身份的,如果这个用户名或用户ID没有和当前手机号、短信验证码进行绑定。也就是说服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。当然可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。

在网站上注册两个用户如下

第一个用户找回密码,点击下一步时抓包

我们可以把email处改为第二个用户的email

放包

发现就可以充值该用户的密码了

重定向发送

如果数据包存在发送验证邮箱或目标地址,尝试修改到自己接受地,实现拦截获取

met_host目标主机可以修改

像这种参数有远程地址或者邮箱,都可以修改成自己的,放包

VPS监听器收到修改密码的链接。也就可以修改密码,所以只要有用户名就能发送修改密码的链接

三、演示案例-验证逻辑-修改相应包&跳过步骤URL

修改响应包

假设这个手机号是别人的,短信验证码乱填

抓包得到

截取数据包的响应

206是错误值,因为手机验证码是我们乱填的,一般200是成功的数值,或者使用自己的手机号做一遍完整的流程响应,重点关注验证手机验证码的响应数据包

到这里还没完,这里还有一个验证,无法重置,再对确定抓包

需要我们再一次返回请求,发现是205

发现返回还是205,那我们找到刚刚第二个成功的包

改为200这个就成功了

所以最好自己先完整的过一遍流程,并保存通过的数据包,以便后续修改

跳过步骤URL

直接将原数据包更改为重置密码数据包,跳过到重置密码界面

总结:

找回密码流程一般需要四个步骤:流程:验证用户名-验证短信验证码-输入新密码-重置成功

这四个步骤应该紧紧相连,互相相关,只有通过了第一个步骤验证才可以进入下一个步骤,如果每个步骤之间没有进行关联性验证,就可能导致跳过关键验证步骤,从而导致重置任意账号密码。

四、演示案例-SRC验证逻辑挖掘实战

短信验证码回显

修改用户对象重置任意用户

修改响应包重置任意用户

返回包

把false改为true

未验证导致重置任意用户

某SRC重定向验证邮箱绕过

https://mp.weixin.qq.com/s/zsHHSXZHaLmiJFkgsjoHKg

某SRC配合信息泄漏重置绕过

https://xz.aliyun.com/t/11757#toc-0