GXYCTF2019 Ping Ping Ping
目录
警告
本文最后更新于 2020-12-04,文中内容可能已过时。
[GXYCTF2019]Ping Ping Ping
题目链接:https://buuoj.cn/challenges#[GXYCTF2019]Ping%20Ping%20Ping
和DMCTF做的那道pingpingping类似,同样是使用管道符构造payload,先使用:
|
|
目录下有两个文件:flag.php
、index.php
。首先试出来了空格被过滤,使用以下绕过空格:
|
|
在linux下反单引号里面的指令会被执行 `ls`
|
|
会输出该目录下所有可以打开的文件,可以查看index.php的部分源码有哪些过滤:
|
|
一些基本的符号、空格、bash、任何形式的flag字眼都被过滤了。接下来就是找访问flag.php。在网上看了好多的题解,用了好多方法,但是网页输出都为空,原来以为和其他题目一样使用readflag的ELF执行文件访问,但是还没成功。其实执行:
|
|
这个payload的时候文件都已经输出了,我最后在网页源码找到了,原来是被注释了我是傻逼。
最后记录下学到的姿势和这道题目的其他思路:
管道符:
|
直接执行后面的语句。||
如果前面语句错误,执行后面的语句。&
前面和后面命令都要执行,无论前面真假,&&
如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令
使用以下绕过空格:
|
|
- 覆盖源码里的
$a
变量(拼接变量):
|
|
- 使用sh执行脚本:
|
|
- 内联执行:
|
|
附:大佬整理的博客(内含更多姿势):命令执行漏洞利用及绕过方式总结