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

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

缺陷编号:wooyun-2013-031605

漏洞标题:拉手网可修改任意用户密码(验证码有效次数绕过)

相关厂商:拉手网

漏洞作者: niliu

提交时间:2013-07-22 10:26

修复时间:2013-07-27 10:27

公开时间:2013-07-27 10:27

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

危害等级:中

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

RT...影响还是比较大的,涉及到用户的财产安全...

详细说明:

今天,登陆拉手时候发现我把自己的用户名忘了...
然后就随手检测了一下...
我就拿自己的号码做测试吧...
登陆时候,点忘记密码,来到密码找回页面...

111.jpg


选择通过短信找回,这里输入手机号后,目标手机会收到一个6位数的随机验证码...
随便输一个验证码提交时抓包...
得到如下数据...

222.jpg


接下来,对验证码进行暴力破解...
对回包进行比对...
错误包:

HTTP/1.1 200 OK
Date: Sun, 21 Jul 2013 03:13:39 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-50
Vary: Accept-Encoding
{"status":5,"msg":"\u9a8c\u8bc1\u7801\u9519\u8bef"}


正确包:

HTTP/1.1 200 OK
Date: Sun, 21 Jul 2013 03:13:39 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-48
Vary: Accept-Encoding
{"status":1,"msg":"MTg2MDA5M*******我是马赛克*******NTc5MkB*********jQxOXwzNDQwMDI3NTZkOTY4**********hMA%3D%3D"}


333.jpg


444.jpg


得到正确验证码,但是经过反复测试,发现拉手的验证码有效性只有一次,就是你输入完验证码到修改密码的页面后,如果返回,再输入验证码这是已经无效了,这样一来,我们破解得到的验证码就无效了....因为我破解是已经用过一次了...
到这里真的没有办法突破了吗?
就在决定放弃的时候,突然想起一个问题,就是之前用邮箱找回密码时候的密码重置连接...如下图:

777.jpg


只要打开连接,即可重置密码,这个没有有效次数限制...
并且,http://www.lashou.com/account/reset?code= [这里这个code很眼熟啊]
经过比对,发现就是暴力猜解验证码时,正确验证码返回的数据中的数据...
直接组合一下得到重置密码连接...

http://www.lashou.com/account/reset?code=MTg2MDA5M*******我是马赛克*******NTc5MkB*********jQxOXwzNDQwMDI3NTZkOTY4**********hMA%3D%3D


访问即可重置目标用户密码!

999.jpg

漏洞证明:

同上

修复方案:

本来是打算暴力破解验证码然后重置用户密码的,但是最后发现验证码有效性只有一次...
在想放弃时候却有了新的发现...盒盒...
这个你们应该懂吧...
ps:听说你们有礼物:-)

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


漏洞回应

厂商回应:

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

忽略时间:2013-07-27 10:27

厂商回复:

最新状态:

暂无


漏洞评价:

评论

  1. 2013-07-25 06:58 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    @拉手网 漏洞修复没,貌似这个快忽略公开了吧…

  2. 2013-07-27 08:08 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    @拉手网 快公开了 …@疯狗 俩一样的漏洞,这个快要忽略公开了,那边还没修复…

  3. 2013-07-27 12:12 | IXY ( 路人 | Rank:19 漏洞数:3 | 小菜来学习的)

    @niliu 这个链接有没有时效性 比如半小时一天或者72个小时失效 这个漏洞就是说只要有验证码的code编码后的字符串就可以重置密码 但是这个code是如何加密的 因为如果不知道加密方法是没办法利用的

  4. 2013-07-27 13:19 | winger ( 路人 | Rank:0 漏洞数:1 | Dark Net Top Hacker)

    @IXY 输入6位码 获取重置参数, 重置参数的和mail里头的链接刚好是一个. 洞主如果有抓包分析整个过程, 有可能看到邮件里头的那个url. 或者做了一层封装, 然后调用。 这里还算是比较清晰的。 直接用调用http://www.lashou.com/account/reset?code=xxxx 就能修改, 如果是被封装了。 就需要先抓包, 热后分析后面修改的流程。写个批量猜解的工具, 在猜解成功后直接模拟提交修改密码。 这个难度不大。 其实只要一个简单的方法就可以避免针对返回值判断是否成功的爆破攻击。 直接产生错误输出, 同时在结果页面中包含一个错误图片的警告(或者指示下一步操作), 但是错误和正确返回的html内容都是一样的。攻击者只能分析返回的图片了。 当然6位码时间越短越好。

  5. 2013-07-27 14:35 | IXY ( 路人 | Rank:19 漏洞数:3 | 小菜来学习的)

    @winger 重新再看一遍明白了 先是爆破验证码 在正确包里面有包含了这个code的编码 然后直接在用 http://www.lashou.com/account/reset?code=xxxx 就可以了

  6. 2013-07-29 09:22 | 拉手网(乌云厂商)

    @niliu 修复了,链接加了有效期

  7. 2013-07-31 12:21 | M4sk ( 普通白帽子 | Rank:1199 漏洞数:319 | 国内信息安全任重而道远,还需要厂商和白帽...)

    拉手网送你媳妇~

  8. 2013-07-31 12:30 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    @M4sk 毛都木有