一.短信验证码爆破漏洞挖掘
1.漏洞原理
服务端未对验证时间,次数做出限制,存在爆破的可能性。简单的系统可以直接爆破,但做过一些防护的系统还得进行一些绕过进行爆破。
对与4位验证码:0000~9999的10000次,五分钟之内。
对于6位验证码:1000000位,五分钟之内跑不完。
2.爆破方法(没有次数限制的)
(1)4位
我们输入电话号码发送验证码后随便输入,用bp打开拦截进行抓包,发送到intruder模块并在验证码位置添加payload,payload类型选择数值,从0000到9999间隔为1,最小及最大整数位为4。
最后开始攻击,有10000种可能,大约1分钟就能跑完。
(2)6位
由于六位数的验证码,可能性太大,一台bp十分钟之内跑不完,我们可以多开bp或者多开虚拟机分区域同时进行破解。*直接把数据包复制其它bp,在范围里做分区。
小技巧(我们用自己的手机号输入然后发送验证码,假如验证码786453,在用bp跑的时候把数字范围设为78600和78700,直接把破解结果拿去忽悠)
二.短信验证码回显漏洞挖掘
1.漏洞原理
验证码回显是指验证码在发送的时候会存在数据包中,通过观察回显的数据包中的数据找到验证码。
我们在浏览器上发送手机号给服务器,服务器接收到后发送验证码给手机这是正常验证码的流程。
我们在浏览器上发送手机号给服务器,服务器接收到后不仅把验证码发送给手机还发送给了浏览器,我们在自己的电脑上就可以利用响应查看验证码信息。
2.方法
我们随便输入手机号及密码,点击获取验证码,开启拦截,把这个数据包拦截下来。把数据包发送到重放模块点击发送,查看响应包里的数据,如果有漏洞,就会有code:验证码(有可能直接显示有可能需要解密)。
三.验证码与手机未绑定认证关系(多用与注册及找回等等)
1.漏洞原理
手机验证码的短信一般是只能使用一次,但是如果手机验证码和手机号没有绑定认证关系,就会出现【A手机收到的验证码B手机也可以使用】。
也就是我们用A手机去获取验证码之后把电话号码改为B手机的电话号码就可以注册B用户的账户。
2.方法
不用bp直接在浏览器界面操作(参考上图以及文字说明即可)。
四.验证码转发漏洞
1.漏洞原理
有些开发人员在接收手机号的时候采用的是数组接收,或者是遍历手机号,没有对手机号进行校验,我们就可以同时发送验证码到两个手机,从而达到绕过。
2.方法
我们打开拦截把数据包发送到repeater,然后在手机号那加个逗号或者空格输入另一个手机号发送查看响应是否存在漏洞,也可以复制参数。
如下
(1)phone=188888888,19999999
(2)phone=12314532&phone=124142352
(3)phone=123141341
phone=214124241
就可以用自己手机号收到的验证码用来注册别人的手机号
五.手机短信轰炸漏洞
标签:手机号,任意,重置,验证码,发送,漏洞,bp,数据包 From: https://blog.csdn.net/2401_87837110/article/details/143808696