POST注入
有兩種方法來進行post注入,一種是使用
--data
參數,將post的key和value用類似GET方式來提交。二是使用
-r
參數,sqlmap讀取用戶抓到的POST請求包,來進行POST注入檢測。
查看payload
之前一直是加本地代理,然後用burpsuit來看sqlmap的payload,到現在才發現用
-v
參數就可以實現。一直認爲
-v
實現的只是控制警告,debug信息級別。實際上使用
-v 3
就可以顯示注入的payload,4,5,6還可以顯示HTTP請求,HTTP響應頭和頁面。
使用google搜索
sqlmap可以測試google搜索結果中的sql注入,很強大的功能吧。使用方法是參數
-g
。不過感覺實際使用中這個用的還是很少的。
請求延時
在注入過程中請求太頻繁的話可能會被防火牆攔截,這時候
--delay
參數就起作用了。可以設定兩次HTTP請求間的延時。有的web程序會在多次錯誤訪問後屏蔽所有請求,這樣就導致之後所有的測試無法進行,繞過這個策略可以使用
--safe-url
,每隔一段時間去訪問一個正常的頁面。
僞靜態頁面
有些web服務器進行了url rewrite或者網站是僞靜態的,無法直接提供測試參數,這樣子可以使用
*
來代替要測試的參數。
執行系統命令
當
數據庫支持,並且當前用戶有權限的時候,可以執行
系統命令,使用
--os-cmd
或者
--os-shell
,具體的講,當可以執行多語句的時候,會嘗試用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)來執行系統命令。不能執行多語句時,仍然會嘗試創建一個webshell來執行語句,這時候就需要web的絕對路徑了。總體來說,成功率偏低,不過個人也有成功的經驗~
測試等級
sqlmap使用
--level
參數來進行不同全面性的測試,默認爲1,不同的參數影響了使用哪些payload,2時會進行cookie注入檢測,3時會進行
useragent
檢測。