Thinksaas找回密码处设计错误利用账户可找回密码。

2014-02-08T00:00:00
ID SSV:94307
Type seebug
Reporter Root
Modified 2014-02-08T00:00:00

Description

简要描述:

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

详细说明:

找回密码处 发送邮件给找回密码的地址 但是找回密码的地址只有一个变量。 只要知道要找回的账户 就可以直接爆破。 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多 这个都看运气了。。 爆破速度也是很快的 吃个饭完了就好了。

漏洞证明:

循环脚本。

<img src="https://images.seebug.org/upload/201402/05163408dda409c1a9bb8e6e88de56e4e1c75628.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201402/0516345861465270e4c678fe6ff3a137205a2c4d.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">

循环出来的数据。 然后载入Burpsuite

<img src="https://images.seebug.org/upload/201402/051635461b99c04c1fc733b6c3f5d8333e979f80.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">

设置好变量

<img src="https://images.seebug.org/upload/201402/0516363769a11c889ad038d02fe13a3222ea8b48.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">

开始爆破。

<img src="https://images.seebug.org/upload/201402/0516371347326183986a69da792dd3fc32bbff8c.jpg" alt="5.jpg" width="600" onerror="javascript:errimg(this);">

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

<img src="https://images.seebug.org/upload/201402/05163825b33b963caf812537476c8d9d055f3db6.jpg" alt="6.jpg" width="600" onerror="javascript:errimg(this);">

重置成功。