Bugku-urldecode二次编码绕过

代码内容

<?php
if(eregi("hackerDJ",$_GET[id])) {
echo("

not allowed!

");
exit();
}
$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "hackerDJ")
{
echo "
Access granted!

";
echo "
flag

";
}
?>

首先是进行正则匹配eregi – 不区分大小写的正则表达式匹配;
之后传进一个参数id,不能为”hackerDJ”,但是经过urldecode后要等于”hackerDJ”

这里利用了两次urldecode:第一次是浏览器的解码;第二次是函数urldecode()的解码

因此将”hackerDJ”中的一个或多个字母进行两次url编码即可