漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-047145
漏洞标题:猥琐方式再次重置拉手网用户密码
相关厂商:拉手网
漏洞作者: niliu
提交时间:2013-12-27 11:32
修复时间:2014-02-10 11:33
公开时间:2014-02-10 11:33
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-12-27: 细节已通知厂商并且等待厂商处理中
2013-12-31: 厂商已经确认,细节仅向厂商公开
2014-01-10: 细节向核心白帽子及相关领域专家公开
2014-01-20: 细节向普通白帽子公开
2014-01-30: 细节向实习白帽子公开
2014-02-10: 细节向公众公开
简要描述:
利用某处设计不当,猥琐方式加组合技能重置拉手网用户密码!
详细说明:
之前利用手机验证码爆破的方式重置过一次,经过拉手网的修补后,发现利用某处设计不当,组合技能依然可以重置密码。
重置密码的具体思路,首先我先正常找回自己的密码测试,选择邮箱找回密码,几秒钟后收到一封重置密码的邮件,链接如下:
重置密码的关键是这段code代码,一眼看出是base64编码,解码后得到如下信息:
格式为
假如我们想重置密码就必须满足以上条件,那么怎么通过一个用户名来收集这么多的信息呢?
经过反复测试分析,再用户名找回密码的地方有一个地方设计不当,导致泄露用户邮箱和那个未知但固定的md5,unix时间戳也可以根据找回密码请求的头信息里获得的时间转换得到,那么现在用户名,邮箱,时间戳,md5都有了,如果再有手机号通过排序信息,base64编码,url编码,组合连接不就可以重置密码了么?
先看一下找回密码处的信息泄露:
找回密码页面
我就随便写个用户(liu)来测试一下
打开firebug,选择网络然后点“找回密码”如下图:
经过仔细查看,发现在请求信息里面的响应里面,“重发一封邮件”处泄露了一处信息:
前面的base64解码为用户邮箱:603729141@qq.com
经过对自己账号的测试进行对比,发现此处md5就是找回密码连接中的那个md5。
再看看时间戳,在请求的头信息中看下时间,为 Date Fri, 27 Dec 2013 02:43:01 GMT
这里的小时需要加上8小时,也就是 (Fri, 27 Dec 2013 10:43:01)然后转换一下即可得到时间戳 (1388112181)
现在利用用户名找回密码得到了邮箱,时间戳,md5,接下来只要知道手机号就可以了。
那么怎么得到手机号呢,还真是个问题,遍历分站,wap站找回密码,遗憾的是没有找到可利用的地方,换个思路,其实知道用户名,邮箱(而且是qq邮箱)想知道手机号其实并不难,百度,谷歌,甚至社工库,通过用户名,qq得到手机号几率还是比较大的。这里我就不花时间去社工了。
这里我就利用拉手网自己泄露给我的信息来测试吧。
拉手网的抽奖活动结果会在官网上公开发布。
谷歌一下:
出来一堆,其中有一些页面由于编辑疏忽,忘记打码处理了。
链接:
那我就那他们测试了。
利用上面说的方法,重置用户(mishzswtion)
首先先以用户名找回密码,获取到邮箱,md5,时间戳等信息。
MzE0OTQ1ODEyQHFxLmNvbQ==解密邮箱为:314945812@qq.com
Fri, 27 Dec 2013 03:01:31 GMT 加8小时转换unix时间戳为:1388113291
用户名手机号已知信息,组合得到
base64编码得到:
组合密码重置连接得到:
访问即可重置用户密码
登陆一下测试
成功登陆。
漏洞证明:
修复方案:
屏蔽“再发一封邮件”处的信息泄露。
求20rank!
版权声明:转载请注明来源 niliu@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2013-12-31 10:03
厂商回复:
我通知开发修补,感谢!
最新状态:
暂无