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

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

缺陷编号:wooyun-2013-031613

漏洞标题:拉手网设计不当可修改部分用户密码

相关厂商:拉手网

漏洞作者: niliu

提交时间:2013-07-21 12:46

修复时间:2013-09-04 12:47

公开时间:2013-09-04 12:47

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-21: 细节已通知厂商并且等待厂商处理中
2013-07-22: 厂商已经确认,细节仅向厂商公开
2013-08-01: 细节向核心白帽子及相关领域专家公开
2013-08-11: 细节向普通白帽子公开
2013-08-21: 细节向实习白帽子公开
2013-09-04: 细节向公众公开

简要描述:

无力吐槽了,真的。第一次提交问我怎么得到code,我写的已经灰常清楚了,能仔细看下么...这次给过了吧。

详细说明:

码了半天的字,还得从头开始啊,另外说明一下只能修改绑定手机的用户。
这回我再说详细一点,code是破解6为数字验证码时候正确的验证码返回包里的数据!
再大致说一下,登陆时候依然点忘记密码,来到密码找回页面,

111.jpg


这里选择通过短信找回,输入手机号,系统会给手机发送一个6位数字的验证码,由于此处没有二次验证,也没有错误次数限制,导致可以暴力破解得到真实的6位数字验证码,如图:
抓包:

222.jpg


破解得到真实6位数验证码:

333.jpg


这里我再说一下,这个不同于往常的通过暴力破解验证码来修改用户密码。
因为拉手网的验证码有效次数只有一次,就是说我破解时候用过一次,再在页面输入就会提示验证码错误,所以破解验证码来重置用户密码的方法就失效了。但是,从破解时候返回的数据包中发现一些问题。可以突破验证码有效次数限制见代码:
错误验证码的包:

HTTP/1.1 200 OK
Date: Sun, 21 Jul 2013 04:22:59 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Server: LWS
Via: web-1-28
Vary: Accept-Encoding
{"status":5,"msg":"\u9a8c\u8bc1\u7801\u9519\u8bef"}


正确验证码数据包:(注意这里面有code!!!)

HTTP/1.1 200 OK
Date: Sun, 21 Jul 2013 04:22:59 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Server: LWS
Via: web-1-34
Vary: Accept-Encoding
{"status":1,"msg":"MTg2MDA5Mjg*******zfDU0MzAwNTc5MkBxcS5jb2*****MDU3OXwzNDQwMDI3NTZkOTY4MT*******ZiYzFhMA%3D%3D"}

*号打码
从上面的返回数据中发现了一串code,
这里这个code(MTg2MDA5Mjg*******zfDU0MzAwNTc5MkBxcS5jb************OXwzNDQwMDI3NTZkOTY4MT*******ZiYzFhMA%3D%3D)
需要说一下,它是和用邮箱重置密码时候收到的链接里的code是一样的(这里设计的有点问题)
所以可以组合一下得到重置密码链接

http://www.lashou.com/account/reset?code=

+

[code]


从而重置用户的密码!
最后我再说一下,这个code是破解验证码时,正确验证码返回包里的数据。见上面代码

漏洞证明:

上面足以证明了吧
具体顺序再说下,目标是绑定手机的用户--然后接受验证码抓包--暴力破解--得到正确验证码返回包数据(数据里有code)--组合连接。然后访问即可重置密码。

修复方案:

你们应该懂吧

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2013-07-22 09:11

厂商回复:

非常感谢,尽快告知开发修复

最新状态:

暂无