本系列文集:实验吧-Write up --将持续更新 觉得还不错请给个喜欢,感谢!
打开题目发现PHP代码,明显的代码审计题!
<?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 无法处理数组,直接返回 fasle
sha1([]) === false md5([]) === false
想要得到flag需要满足
1.传入name,password的值
2.name和password的值不能相等
3.//name和password的sha1加密散列值相等
构造payload:?name[]=1&password[]=2
or ?name[]=a&password[]=b
一定要在在URL
中提交