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

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

缺陷编号:wooyun-2016-0170832

漏洞标题:木蚂蚁重置任意用户密码

相关厂商:mumayi.com

漏洞作者: 呆呆狗

提交时间:2016-01-18 14:53

修复时间:2016-01-28 09:54

公开时间:2016-01-28 09:54

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-18: 细节已通知厂商并且等待厂商处理中
2016-01-18: 厂商已经确认,细节仅向厂商公开
2016-01-28: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

木蚂蚁用户中心找回密码-重置用户密码
邮箱收到的重置密码链接加密方式过于简单,可以自己片接,从而实现重置任意用户密码

详细说明:

本来想找回自己的密码。

QQ图片20160118134548.png


发现前面有个uid参数,后面是个base64值,然后我想如果能够模拟后面的base64就可以充值任意用户的密码了。
然后我base64_decode了下结果为 :13930|1453091166
居然可以直接得到有效信息。那么如果我能够知道uid对应的后面两个值就可以了。
13930|1453091166解析
第一个参数暂时不知道代表什么,第二个参数一看就是时间戳。
然后我又发了第二封找回密码给自己,解析出来的值是:
13931|1453091236
第一个参数加了1 ,我想应该是找回密码表的主键id把,因为前面已经有uid了
然后我发第三封,验证是不是
13932|1453091296
基本可以肯定为找回密码表的主键id 了
我想这个时候如果uid为1的用户点击了找回密码那么
模拟uid=1的找回密码的链接

"http://u.mumayi.com/?a=resetpasswd&uid=1&id=MTM5NDV8MTQ1MzA5MjE4Mw==".base64_encode('13933|'.time())


就是这个地址了。
于是我点击网上的uid找回密码,蛋疼需要找到管理员邮箱地址才可以

4.png


有一段是*号,于是我有测试了我自己的账号

5.png


发现中这个型号代替的部分是动态的,就是说我这里可以知道邮箱地址的真实长度。
然后我再选择邮箱找回,输入错误会提示邮箱不存在。

6.png


这样我就可以用程序遍历了,遍历3位数还是很快的。懒得遍历随便猜了下 uid=1的 邮箱a***n@9495.com 应该是admin@9495.com不行我就遍历。测试了下 邮箱地址正确了。
这个时候再用uid找回(我需要新跟自己发一封邮件因为我要知道base64参数的那个递增值)

8.png


提示操作成功了
模拟url链接重置密码:

"http://u.mumayi.com/?a=resetpasswd&uid=1&id=MTM5NDV8MTQ1MzA5MjE4Mw==".base64_encode('13933|'.time())


得到地址,然后我访问 发现居然不行。那么就只有一个可能,第二个时间参数参与了判断,
我必须知道数据对应记录时间,于是我又注册了个账号。(2个账号a,b)
我用a输入邮箱找回密码
然后重复操作数据admin@9495.com邮箱 找回密码
然后用b输入邮箱找回密码
然后解析a账号和b账号的base64 得到两者的时间戳,
b的时间戳-a的时间戳=admin@9495.com操作时间戳区间
然后遍历

//1-13944|1453092166
//2-13946|1453092195

for ($i=1453092166;$i<1453092195;$i++){
$res = file_get_contents("http://u.mumayi.com/?a=resetpasswd&uid=1&id=".base64_encode('13945|'.$i));

file_put_contents("mumayi.txt",$i."----".strlen($res)."\n",FILE_APPEND);
}die;


得到结果

9.png


确定了时间戳
uid,主键id,时间戳3个参数都有了 于是重新生成重置密码的链接,访问ok

3.png


后面的就没继续操作了

漏洞证明:

重置uid=1的用户密码

1.png


2.png


模拟片接重置密码的参数

3.png


修复方案:

1 增加加密的复杂度
2 修改用户邮箱信息加密方式

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2016-01-18 15:59

厂商回复:

感谢反馈,技术蚂蚁已经在处理

最新状态:

2016-01-25:已经修复完毕,非常感谢

2016-01-28:非常谢谢,反馈的安全问题,我们技术已打上安全补丁。


漏洞评价:

评价

  1. 2016-01-18 15:16 | px1624 ( 普通白帽子 | Rank:1072 漏洞数:180 | px1624)

    这个简要描述好详细

  2. 2016-01-18 16:21 | 随风的风 ( 普通白帽子 | Rank:190 漏洞数:66 | 微信公众号:233sec 不定期分享各种漏洞思...)

    这个简要描述好详细