我一直在练习与安全相关的主题,但遇到了这个我根本不明白的问题。您收到一个包含一个名为 的输入的表单pass
,这是您需要绕过的代码:
<?php
error_reporting(0);
session_save_path('/home/mawekl/sessions/');
session_start();
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
echo 'This task is as hard to beat as the castle which you can see on the bottom.<br>';
echo '<pre>';
include('./ascii.txt');
echo '</pre><br>';
$_SESSION['admin_level']=1;
if (!isset($_POST['pass']) || md5($_POST['pass'])!='castle')
{
echo '<b>Wrong or empty password.</b><br>';
$_SESSION['admin_level']=0;
}
如果它进入最后的 if 语句,你就输了(需要让它$_SESSION['admin_level']
保持在1
)。
任何帮助表示赞赏,谢谢!
澄清:
我无法编辑我发布的代码。这是一个挑战。我所能做的就是通过名称为“pass”的输入发送密码。是的,我知道 md5 应该返回一个 32 字符长的字符串。这就是挑战。