第74天:机制验证篇&重定向发送&响应状态码&跳过步骤&验证码回传&枚举

第74天:机制验证篇&重定向发送&响应状态码&跳过步骤&验证码回传&枚举
Yatming的博客验证码突破-回传显示&规律爆破
某目标回显显示
通过手机找回密码,响应包中包含短信验证码。
存在漏洞要求
- 当验证码是纯数字四位,六位 (或者长度较短符号较少的)
- 提交验证码存活时间足够长
- 验证码提交多次不会被拦截 (有的验证码有提交次数限制,需要重新发送),就可以采用爆破的手段
抓取发送验证码数据包,发验证码就在数据包中
这种是验证码错误时,服务器会返回正确验证码
演示
某 APP 验证码爆破 某目标回显显示(爆破验证码)
- 通过手机找回密码,响应包中包含短信验证码。
- 找回密码时使用位数较少的短信验证码,或者验证码没有设置有效时间限制,导致攻击者借助自动化工具在一定时间范围内爆破获得短信验证码,从而导致重置任意账号密码。
- 使用 bp 抓取数据包,将验证码字段进行爆破,查找返回长度不一样的验证码
验证目标 - 重定向用户 & 重定向发送
任意密码修改
原理
- 当我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码,输入密码后提交到服务端的 post 数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户 ID 来标识用户身份的,如果这个用户名或用户 ID 没有和当前手机号、短信验证码进行绑定。也就是说服务端只验证用户名、ID 是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID 去修改其他用户的密码了。当然可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。
- 如果数据包存在发送验证邮箱或目标地址,尝试修改到自己可以接受验证码的地址,实现拦截获取
先注册两个用户:
1 | xiaodi 123.com 1852029021@qq.com |
配置邮件接口:
授权码在这里配置一下就行。
某CMS重定向
发生场景:打个比方就是有的网站重置密码的时候,会发送一条链接,然后让你进行点击之后才可以重置密码,如果这里没有做严格的控制,那么就可以将这个链接进行拦截,然后修改成发送到攻击者自己的邮箱地址,实现劫持。
实战中查看数据包中是否存在外部链接地址,尝试将这个外部链接地址修改为自己可以接收的,查看是否会发送信息到自己的地址,一般这种是就是点击发送到你的邮箱的地址进行修改密码。
这个实际上抓包没有那个参数,数据包头部如下
1
POST /admin/admin/getpassword.php?met_host=邮箱地址 HTTP/1.1
是因为有这个漏洞,被挖出来了,知道这里可以传递一个参数,met_host
然后重置别人的账号,通过修改这个 met_host,将服务器发送数据包的地址修改为自己的,如 nc 监听的一个端口
这样就可以获取到服务器发送的邮件了
验证逻辑 - 修改响应包 & 跳过步骤 URL
原理
- 修改响应包是针对于验证在前端的
- 通过手机找回密码一般需要短信验证码验证,服务端需要告诉客户端,输入的验证码是否正确,如果客户端收到 true 的信息,那么就会向带着 true 的信息向服务端请求进入下一步,而服务端收到 true 的信息,就会允许客户端进入下一步,反之,如果是 false 的信息,服务端就不会允许客户端进入下一步。也就是说我们进入下一步的关键是让服务端收到客户端的 true 信息,而借助 burpsuite,我们可以修改服务端返回到客户端的信息,这样一来,我们就可以输入任意短信验证码,然后将服务端返回的 false 信息改为 true 就可以绕过短信验证码的验证了。
- 找回密码流程一般需要四个步骤:
- 流程:验证用户名 - 验证短信验证码 - 输入新密码 - 重置成功
- 这四个步骤应该紧紧相连,互相相关,只有通过了第一个步骤验证才可以进入下一个步骤,如果每个步骤之间没有进行关联性验证,就可能导致跳过关键验证步骤,从而导致重置任意账号密码。
实战中先每个流程正确的数据包以及响应包抓取下来,然后进行后续测试
演示:APP都死了,打不开。
实战 SRC 案例分享
- 某 SRC 重定向验证邮箱绕过:
https://mp.weixin.qq.com/s/zsHHSXZHaLmiJFkgsjoHKg
- 某 SRC 配合信息泄漏重置绕过:
https://xz.aliyun.com/t/11757#toc-0
- 其他的也没在这里放出来
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果