sql繞過基礎


一、如果發現一個url可能是注入點之后我們可以嘗試手注,但是一般的網站都會過濾一些字符串。

在^沒有被過濾的時候可以利用它來測試

異或:xor或^

邏輯運算就是:同真異假(兩個條件結果相同就為真,結果不同就為假)

例如:1^0 就是 1 ,1^1 就是 0

 

例如:?id=1’ ^ (length(‘union’)!=0)--+

如果union被過濾,則后面條件的結果就是假的,前面也是假的,url返回正確

如果union沒有被過濾,則后面的條件的結果就是真的,而前面是假的,url返回錯誤

也可以是?id=1’ ^ (length(‘union’)=5)--+

 

二、簡單的sql繞過

基本關鍵字:括號、空格、引號、#、=、+、and、or、order、select、union、update、inster、into、delete、outfile……

一些繞過的方法:

1、 大小寫混寫

2、 使用url編碼替換字符 ‘ %27,# %23

3、 十六進制繞過 where=“user” where=0x7573657273

4、使用&& || 代替and or

5、雙寫關鍵字 aandnd

6、繞過空格:用tab鍵代替空格

用回車chr(13)&chr(10),url編碼的形式%0d%0a

用括號 id=1(and)1=1

7、=用like、rlike、等代替

8、使用/**/注釋符來,重組關鍵字 un/**/i/**/on

9、注釋負://,-- , /**/, #, --+, -- -, ;,%00,--a

如果是使用gbk的網頁編碼的網站也可以利用寬字節來繞過

 

三、寬字節注入

寬字節注入:‘被轉義成\',可以通過寬字節繞過轉義把’逃逸出來

gbk 占用兩字節

ASCII占用一字節

如果網站的字符集是GBK,MYSQL使用的編碼也是GBK的話,利用gbk取值范圍(第一個字節129-254,第二個字節64-254),會解析為一個漢字,這樣\就會是去應有的作用。例如%df%5C%27(%bb%5C%27),前兩個合並為一個漢字“縗’”(%5C是\),然后‘就被逃逸出來了,然后就可以進行注入測試。

寬字節注入與HTML頁面編碼是無關的值型SQL注入無效。

 


免責聲明!

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



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