1.空格绕过
1 | {cat,flag.txt} |
$IFS在linux下表示分隔符,加一个{}就固定了变量名,同理在后面加个$可以起到截断作用。
2.命令分割符
1 | %0a 换行符 |
3.黑名单绕过
1 | a=l;b=s;$a$b //变量绕过 |
4.短命令执行
大体上的想法就是通过重命名文件绕过,然后通过ls
来将文件名写入到文件中,>
这个重定向符号可以来创建文件,其中文件名是>
后面跟的参数,然后创建出我们精心构造好的多个文件名,然后通过ls
打印出来再重定向>
到一个木马文件中,就可以执行了
- 两个反斜杠
\\
,这种方法是利用\
来拼接字符串,其中前一个\
是用来反义后一个\
的。这种方法的话需要精心构造输入,利用倒叙来输入,然后ls
的时候需要加-t
参数来排列一下,虽然报错了但是也执行成功了
题目源码如下
1 |
|
payload
1 | >php\\ |
1 |
|
因为长度要小于5,所以我们无法执行ls -t>a
所以思路是先构造 ls -t>a
exp
1 | import requests |
1 |
|
最大的问题还是ls -t>g
这个问题
这个exp的构造非常的细致
首先是 ht-
加了个 h
参数但效果和 -t
一样 但可以让 ht-
排在sl
前面
选择dir
列目录,dir
排在第一位,*
直接会执行dir
命令
之后 rev
逆序文件。
后面都是一样的就不讲了