盛年不重来,一日难再晨。 及时当勉励,岁月不待人。
空格绕过
1 | ${IFS}替换 |
黑名单绕过
1 | 单引号、双引号绕过 |
读文件绕过
当cat被过滤时,可以使用如下命令代替1
2
3
4
5
6
7
8
9
10
11
12(1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体内容
内联绕过
1 | 就是将反引号内命令的输出作为输入执行,`命令`和$(命令)都是执行命令的方式 |
通配符绕过
1 | […]表示匹配方括号之中的任意一个字符 |
绕过长度限制
通过创建文件名将其组合成我们想要的命令的方式来绕过长度限制,在linux中\
可以将一行命令分成多行来书写。
ls -t
按文件修改时间进行排序,而不是按文件名进行排序。
ls -t>a
这条命令先执行了创建a文件然后将ls -t
的执行结果写入a文件
sh a
将a文件以shell脚本的形式来执行1
2
3
4
5
6
7
8
9
10lmc@kali:~$ touch ag
lmc@kali:~$ touch fl\\
lmc@kali:~$ touch t \\
lmc@kali:~$ touch ca\\
lmc@kali:~$ ls -t
'ca\' '\' t 'fl\' ag flag
lmc@kali:~$ ls -t>a
lmc@kali:~$ sh a
可以使用touch命令或'>'重定向符来创建文件