sql注入繞過方法


一、注釋符號繞過

  在sql中常用的注釋符號有

  --、#、/*xxx*/、

二、大小寫繞過

  當web正則過濾的時候對大小寫不敏感的情況下使用,一般很少會有這種漏洞

  比如當過濾了select的時候我們可以采用SEleCT來查詢

三、內聯注釋繞過

  把要使用的查詢語句放在/*。。。*/中,這樣在一般的數據庫是不會執行的,但是在mysql中內聯注釋中的語句會被執行。

四、雙寫關鍵字繞過

  有的waf只會對關鍵詞過濾一次,這時候采用雙寫的方式可以繞過。

  selselectect * from user; 過濾select后變成 select * from user;

五、特殊編碼繞過

  十六進制:

    select * from users where username = 0x7a68616e677961;

  

 

 

 

  ascii編碼繞過

  

 

六、空格過濾繞過

  /**/ ,(),`,tab,兩個空格

  

  一定要注意在使用()繞過的時候,括號里邊不能有*號

  

 

七、or and xor not 過濾繞過

  and = &&     or = ||  xor = | #   not = !

八、=號過濾繞過

  =號和不加通配符的 like 是一樣的。

  

 

 

   還可以使用 < >號來繞過

  

 

  <> 在mysql中等於!= 如果在加一個! 雙重否定代表肯定 就是= 了

  

 

 

   strcmp(str1,str2):若所有的字符串均相同,則返回STRCMP(),若根據當前分類次序,第一個參數小於第二個,則返回 -1,其它情況返回 1

   

 

  between關鍵字

  

 

 

 九、引號被過濾

  使用十六進制過濾,同上。

  常用在web應用使用的字符集為GBK時,並且過濾了引號,就可以試試寬字節。

十、逗號被過濾

  

 

 

   正常情況下的substr表達式是substr(str1,start,long)

  可以使用一個替代逗號的方法就是使用from pos for len,其中pos代表從pos個開始讀取len長度的子串

   

 

 

   使用offset關鍵字
  適用於limit中的逗號被過濾的情況
  limit 1,2表示從第二行開始,取兩行。limit 1 offset 5 表示從第六行開始取一行。

  

 

   

  暫時這么多,日后更新。

   

 


免責聲明!

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



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