註入崗位有兩種方式。壹種是使用- data參數以類似GET的方式提交帖子的鍵和值。第二種是使用-r參數,sqlmap讀取用戶捕獲的POST請求包來檢測POST註入。
查看有效負載
之前我總是添加壹個本地代理,然後用burpsuit查看sqlmap的有效負載。直到現在,我發現可以用-v參數來實現。壹直認為-v只實現控制告警和調試信息級。事實上,使用-v 3可以顯示註入的有效負載4、5和6,還可以顯示HTTP請求、HTTP響應頭和頁面。
使用谷歌搜索
Sqlmap可以在google搜索結果中測試sql註入,非常強大。使用方法是參數-g,不過,我感覺實際使用中很少用到這個。
請求延遲
在註入的過程中,如果請求過於頻繁,可能會被防火墻攔截。這時,- delay參數開始發揮作用。您可以設置HTTP請求之間的延遲。有些web程序在多次錯誤訪問後會屏蔽所有請求,導致後續所有測試無法進行。要繞過這種策略,您可以使用- safe-url偶爾訪問壹個普通頁面。
偽靜態頁面
有些web服務器有url重寫或者網站來自偽靜態,所以無法直接提供測試參數。這樣,就可以用*代替要測試的參數。
執行系統命令
如果數據庫支持,並且當前用戶有權限,他可以使用-OS-cmd或- os-shell執行系統命令。具體來說,當可以執行多個語句時,他會嘗試用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)來執行系統命令。當妳不能執行多個語句的時候,妳還是會嘗試創建壹個webshell來執行語句,然後妳就需要web的絕對路徑了。總體來說成功率低,但個人也有成功的經驗~
測試等級
Sqlmap使用- level參數進行不同的綜合測試。默認值是1,不同的參數會影響使用哪個有效負載。當它為2時,將檢測cookie註入,當它為3時,將檢測useragent。