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

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

缺陷编号:wooyun-2012-014618

漏洞标题:光棍节屌丝的逆袭专场NO.5---58同城网修改任意妹子账号密码漏洞

相关厂商:58同城

漏洞作者: 风萧萧

提交时间:2012-11-11 08:26

修复时间:2012-12-26 08:27

公开时间:2012-12-26 08:27

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

各位屌丝,你们知道么?58同城也可以交友啦!赶紧注册账号把妹子吧!
58同城,一个神奇的网站!喜欢杨幂的屌丝请看这里!

详细说明:

1.好的,为满足广大屌丝的要求,首先上一张杨大美人的代言58同城的靓照!

0.jpg


2.那我们开始了,访问网址:http://jiaoyou.58.com(其实主站也可以的),看到【忘记密码?】的链接没有,对了就是点击这里!

1.jpg


3.选择取回方式为手机号码,输入手机号码与图片验证码后,点击【提交】按钮:

2.jpg


4.这里由于是测试,我使用了自己的手机号码,收到了6为纯数字的短信码(为了与图片验证码区别,这里成为短信码)是【807077】,这里随意的填写了一个短信码123456,点击【重设密码】之前设置好浏览器的代理为burpsuite!

4.jpg


5.代理抓到的请求包如下:

POST /mobileresetpassword HTTP/1.1
Host: passport.58.com
Proxy-Connection: keep-alive
Content-Length: 72
Cache-Control: max-age=0
Origin: http://passport.58.com
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.2 Safari/537.13
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://passport.58.com/checkvalidcode
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: id58=05eNElCctZgQjUwMVxGbAg==; ipcity=sh%7C%u4E0A%u6D77; regreferer="http://sh.58.com/"; from=""; utm_source=""; utm_campaign=""; myfeet_tooltip=end; city=bj; 58home=bj; PassportVerifyCode=PassPort58-70b114dc-84bb-4c01-a275-f9f27231e84d; resetuid=2988365276934; resetmobile=1*********9; __utma=253535702.2029226588.1352447226.1352447226.1352587297.2; __utmb=253535702.19.10.1352587297; __utmc=253535702; __utmz=253535702.1352587297.2.2.utmcsr=wooyun.org|utmccn=(referral)|utmcmd=referral|utmcct=/corps/page/4
mobile=1*********9&validcode=123456&password=******&cpassword=******


很容易判断出参数mobile为手机号码,validcode参数为短信码,password和cpassword为需要重置的密码。

漏洞证明:

5.那么,我开始对validcode参数进行暴力破解了!操上burpsuite,设置好需要爆破的参数

5.jpg


由于只是测试,我从800000开始

6.jpg


设置并发的线程数为20个,看看需要花多长事件:

7.jpg


6.通过返回的字节数或者返回的内容得出正确的短信码:
短信码错误时,返回的字节数为598,而短信码正确时字节数为1525;
当然也可从返回的内容来判断是否获取正确的短信码,短信码错误时返回内容包含"检验记录不存在"的字样,短信码正确时则返回跳转到重置成功的页面!

8.jpg

9.jpg


7.其实,爆破的时候,密码已经重置过了,这里直接使用重置的密码进行登录即可,但是为了说明另一个问题:短信码可多次使用,我用爆破的短信码进行再次重置,表示依然可以!

10.jpg

修复方案:

1.一般情况下,短信码应设置为1次使用立即失效,防止他人无需走重置密码的流程即可对短信码爆破等等!
2.6位纯数字短信码的爆破,即平均50万次的请求,我使用了burpsuite测试单台机器100线程,8分多钟即可重置任意一个手机账号!危险啊
3.短信码可以为6位纯数字,甚至可以缩短为4为纯数字;可以不设置图片验证码,甚至可以不用设置短信码的有效期。但是为什么不设置连续5次尝试失败就锁定本次密码重置的请求呢?
4.求20rank,求礼物!

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2012-11-12 10:02

厂商回复:

感谢报告的漏洞,确认该漏洞对58账号安全影响较大,属于高危漏洞,马上安排修复漏洞。

最新状态:

暂无