#引數型別
這裡說的引數是原始碼中存在注入的地方。
其中引數型別有:數字、字元、搜尋、json等。
其中sql語句干擾符號有:',",%,),}等,過濾首先考慮閉合這些符號,再進行注入測試。
例如php中的程式碼:
$name = $_GET['x'] $sql = "select * from user where name='$name'";
請求時:
http://www.xxx.com/x.php?id=xxx and 1=1 返回sql語句: select * from user where name='xxx and 1=1' 過濾方法: http://www.xxx.com/x.php?id='xxx and '1'='1
許多網站有搜尋功能,其搜尋框可能存 在注入點,注入時需閉合%。
sql中的搜尋:
select *from user where name like '%引數%';
#明確請求方法
請求方法有:GET、POST、COOKIE、REQUEST、HTTP頭等
GET請求:通過url直接請求
POST請求:通過請求正文進行請求
COOKIE:cookie屬於請求頭部分,有些網站可通過cookie請求的資料進行注入
REQUEST請求:既可以通過GET請求,也可以通過POST請求
HTTP頭:HTTP請求頭域中有些引數值可能存在可以訪問伺服器中資料庫中某些資訊,可能存在注入
1.GET請求
sqlilabs第5關:
提交無反應,說明引數有有東西,檢視原始碼
發現引數用單引號括起來了,需要閉合。
提交無反應,說明是無回顯注入,暫時介紹到這裡,後續在講無回顯注入方法。
sqlilabs第6關
第六關仍是無回顯
檢視原始碼
發現引數用雙引號括起來的,要過濾雙引號
2.POST請求
sqlilabs第11關
抓個包試試:
是post請求方法,直接構造post請求方法進行注入
3.COOKIE注入
sqlilabs第20關
被轉義,嘗試cooki注入:
測試可行。
4.http頭注入
sqlilab第18關
顯示ip和 User Agent,通過分析原始碼,這裡對uname和passwd引數進行了處理,但是還有兩個新的全域性變數可控,ip和user-agent:
修改User-Agent內容為xxx,發包:
通過修改User-Agent進行報錯注入: