先审计代码:
<?php
if (isset($_GET['name']) and isset($_GET['password'])) {
if ($_GET['name'] == $_GET['password'])
echo '<p>Your password can not be your name!</p>';
else if (sha1($_GET['name']) === sha1($_GET['password']))
die('Flag: '.$flag);
else
echo '<p>Invalid password.</p>';
}
else{
echo '<p>Login first!</p>';
?>
我们要做的就是传进去name和password的值,使其满足:sha1($_GET['name']) === sha1($_GET['password']
哈希值相等,这里我们用数组绕过就行
构造payload:ctf5.shiyanbar.com/web/false.php?name[]=1&password[]=2
就拿到flag了。