本系列文集:實(shí)驗(yàn)吧-Write up --將持續(xù)更新 覺(jué)得還不錯(cuò)請(qǐng)給個(gè)喜歡得院,感謝娃圆!
打開(kāi)題目發(fā)現(xiàn)PHP代碼,明顯的代碼審計(jì)題!
<?php
if (isset($_GET['name']) and isset($_GET['password'])) {//1.傳入name,password的值
if ($_GET['name'] == $_GET['password'])//2.name和password的值不能相等
echo '<p>Your password can not be your name!</p>';
else if (sha1($_GET['name']) === sha1($_GET['password']))3.//name和password的sha1加密散列值相等
die('Flag: '.$flag);
else
echo '<p>Invalid password.</p>';
}
else{
echo '<p>Login first!</p>';
?>
sha1和md5漏洞
md5 和 sha1 無(wú)法處理數(shù)組,直接返回 fasle
sha1([]) === false md5([]) === false
想要得到flag需要滿足
1.傳入name,password的值
2.name和password的值不能相等
3.//name和password的sha1加密散列值相等
構(gòu)造payload:?name[]=1&password[]=2
or ?name[]=a&password[]=b
一定要在在URL
中提交