漏洞详情

披露状态:

2014-02-08: 细节已通知厂商并且等待厂商处理中
2014-02-08: 厂商已经确认,细节仅向厂商公开
2014-02-11: 细节向第三方安全合作伙伴开放
2014-02-18: 细节向核心白帽子及相关领域专家公开
2014-02-28: 细节向普通白帽子公开
2014-03-20: 细节向实习白帽子公开
2014-05-09: 细节向公众公开

简要描述:

找回密码处 设置的链接不好把。。

详细说明:

找回密码处 发送邮件给找回密码的地址 但是找回密码的地址只有一个变量。



只要知道要找回的账户 就可以直接爆破。



http://127.0.0.1/thinksaas2/index.php?app=user&ac=resetpwd&mail=admin@admin.com&set=1d8c9f71eaa6923fc9d3cd5d10aea4ce



找回密码的地址。 app ac mail 这些都是知道的 只有set不知道。



在/app/user/action/forgetpwd.php处。



$resetpwd = md5(rand());

$new['user']->update('user',array(
'email'=>$email,
),array(
'resetpwd'=>$resetpwd,
));

//发送邮件
$subject = $TS_SITE['base']['site_title'].'会员密码找回';

$content = '您的登陆信息:<br />Email:'.$email.'<br />重设密码链接:<br /><a href="'.$TS_SITE['base']['site_url'].'index.php?app=user&ac=resetpwd&mail='.$email.'&set='.$resetpwd.'">'.$TS_SITE['base']['site_url'].'index.php?app=user&ac=resetpwd&mail='.$email.'&set='.$resetpwd.'</a>';
echo $content;





可以看到 只有$resetpwd 不知道。 但是

$resetpwd = md5(rand());

是随机的 然后再md5 RAND_MAX 只有 32768

所以可以爆破之。

写个脚本 循环给1-32768 md5 一次 然后再载入burpsuite 进行爆破。

在测试过程中 最少的一次 只有300多。 最多的一次20000多 这个都看运气了。。

爆破速度也是很快的 吃个饭完了就好了。



漏洞证明:

循环脚本。

1.jpg





2.jpg





循环出来的数据。



然后载入Burpsuite



3.jpg





设置好变量



4.jpg





开始爆破。



5.jpg





观察length 可以知道哪个是正确的。 可以看到我这个在7446的时候 就成功了。



然后直接访问



6.jpg





重置成功。

修复方案:

还是不要用随机的把。。



版权声明:转载请注明来源 ′ 雨。@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-02-08 20:14

厂商回复:

已经修复,感谢支持。

最新状态:

暂无


漏洞评价: