好得很程序员自学网

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

万达电影网站的任意帐号密码重置漏洞及修复

1.万达电影网站的主站对密码重置这一模块,部署了强悍的验证码,因此这里是没有问题的!

 

2.但是在给移动终端访问的站点http://m.wandafilm.com存在问题,没有部署验证码,可以通过爆破手机短信码(区别于图片验证码,这里称作短信码)从而重置任意帐号的密码,听我慢慢道来!首先打开移动终端的主站,点击【会员中心】

 

3.如果你没有登录的话,会跳到登录界面,但是看到【忘记密码?】。我激动了:

 

4.点她吧!输入要找回密码的手机号码,我这里为测试,使用了自己的:

 

5.点击【获取验证码】,网站便跳转到了重置的页面同时手机上收到短信码,为6位纯数字:745233,我随手写个6位纯数字验证码111111,并填上需要重置的密码,点击提交,这里注意要抓包,查看请求:

可以看到返回"手机验证码错误"的字样

6.从抓包的数据看,POST的请求为:

Host: m.wandafilm.com

Proxy-Connection: keep-alive

Origin: http://m.wandafilm.com

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

Referer: http://m.wandafilm.com/member/findPass.do

Accept-Encoding: gzip,deflate,sdch

 

其中,mobileNo参数为手机号,token参数为短信码,newPass为需要重置的密码,那么只要token被猜测对了,只需一次请求即可重置相关手机号的密码:

 

 

7.继续模拟上述请求,将POST请求发送到burpsuite的intruder模块,设置好需要爆破的参数为token:

 

8.由于只是测试,我这里从745200开始爆破,在爆破时如果token不正确则返回"万达电影_系统忙"的字样,并且从返回内容字数的多少也可以判断:

 

9.成功爆破短信码后,系统会返回【万达电影移动_密码修改成功】的字样:

 

10.后面利用爆破的账号密码成功登陆系统:

 

修复方案:

1.实际上在移动用户密码重置这里确实有一个小小的限制,短信码的有效期为5分钟,但是对真正的 黑客 来说这并不算什么!假设网速可以的情况下,每秒能进行一次爆破验证码的请求,那么10计算机并发1000个线程只需两分钟即可成功重置账号!

2.短信码可以为6位纯数字,甚至可以缩短为4为纯数字;可以不设置图片验证码,甚至可以不用设置短信码的有效期。但是为什么不设置连续5次尝试失败就锁定本次密码重置的请求呢?

查看更多关于万达电影网站的任意帐号密码重置漏洞及修复的详细内容...

  阅读:76次