關於SQL注入的過濾和繞過方式總結


  • 過濾關鍵字:
    • 一般繞過方式:
      1. 大小寫
      2. 雙寫
      3. /**/,<>分割關鍵字
      4. 編碼繞過
    • 過濾information_shcema:使用sys.x$schema_flattened_keys、sys.schema_table_statistics_with_buffer 、sys.schema_auto_increment_columns、mysql.innodb_table_stats、mysql.innodb_index_stats等代替
  • 過濾空格:
    1. /**/等注釋符
    2. 使用括號包裹語句
  • 過濾"#"和"--+":
    1. ;%00
  • 過濾"=":
    1. 在union注入中where后面的=可以用like代替
  • 過濾"<>"(大於小於號):
    1. greatest(n1,n2,n3,...)
    2. strcmp(str1,str2)
    3. in
    4. between..and...
  • 過濾逗號:
    1. union可以使用join方法繞過   union select 1,2,3  變成  union select * from (select 1)a join (select 2)b join (select 3)
    2. substr和mid()   可以使用from for的方法解決 substr(str from start for len) //在str中從第start位截取len長的字符 mid(str from start for len)//在str中從第start位截取len長的字符
    3. limit可以用offset的方法繞過 ,limit 2 offset 1//從第一位(不包括)取出兩條數據(第2,3位數據)
  • 過濾order by:
      可以使用 into 變量名進行代替select * from users where id=1 into @a,@b,@c,@d;
  • 未完待續...


免責聲明!

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



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