好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

买卖宝用户密码重置 - 网站安全 - 自学php

1.这是是买卖宝的主站哦,进入买卖宝的账号登陆页面:

 

当然我们这里不登陆,而是点击【忘记密码?】按钮,进入密码重置流程:

 

 

2.注册过的用户都得用手机验证,才能用手机号进行密码找回。

填写需要重置的账号,即验证的手机号码,由于只是测试 漏洞 存在,这里只用了我自己的账号:

 

3.点击提交,此时已经给我的手机号发送了重置密码的短信验证码了:

 

4.查看手机收到的短信码为【0788】,我首先输入任意的4位纯数字短信码1234,点击提交,则返回如下错误,记得此时设置好 浏览器 代理:

 

5.同时,看到的抓包请求为:

Host: HdhCmsTestmmb.cn

Accept-Encoding: gzip, deflate

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

 

上面的参数checkCode=1234为短信码,而参数phone=150********为手机号码。

6.写了那么多,开始吧:设置好参数code为需要爆破的参数,开始暴力猜测

 

 

7.通过返回的字节数或者返回的内容得出正确的短信码:

这里成功 破解 短信验证码为0788.

 

8.那么使用爆破完的短信码重置账号吧!

 

 

 

9.成功重置密码:

修复方案:

1.还有一个很严重的bug,上述途中也可以看见,他说有两种方法重置密码:

a.点击短信中的链接,修改密码

b.输入收到的验证码,修改密码

在发送手机验证码时,还发送有一个连接,http://HdhCmsTestmmb.cn:80/wap/c.do?r=3IWB,此链接可直接重置密码,而且从连接中看出,只要破解出r参数的值就可重置密码,搞不懂这是什么方法。。。

只要拿了上述链接,不用走重置密码的流程即可重新更新密码;

 

2.4位纯数字短信码的爆破,即平均1万次的请求,我使用了burpsuite测试单台机器100线程,1分钟不到即可重置任意一个手机账号!危险啊

 

3.短信码可以为4位纯数字;可以不设置图片验证码;甚至可以不用在这里设置短信码的30分钟有效期。但是为什么不设置连续几次尝试失败就锁定本次密码重置的请求呢?

查看更多关于买卖宝用户密码重置 - 网站安全 - 自学php的详细内容...

  阅读:57次