2、SQLMAP進階php
1、--level 5:探測等級mysql
參數--level 5 指須要執行的測試等級,一共有5個等級(1-5),可不加level,默認是1。SQLMAP使用的Payload 能夠在xml/payloads.xml中看到,也能夠根據相應的格式添加本身的payload,其中5級包含的payload最多,會自動破解出cookie、XFF等頭部注入。固然,level 5 的運行速度也比較慢。這個參數會影響測試的注入點,GET和POST的數據都會進行測試,HTTP cookie 在level 爲2時就會測試,HTTP User-Agent/Referer 頭在level爲3時就會測試。總之,在不肯定哪一個Payload或參數爲注入點時,爲了保證全面性,建議使用高的level值。web
2、--is-dba:當前用戶是否爲管理權限sql
該命令用於查看當前帳戶是否爲數據庫管理員帳戶。shell
sqlmap.py -u 網址 --is-dba
3、--roles:列出數據庫管理員角色數據庫
該命令用於查看數據庫用戶的角色。若是當前用戶有權限的讀取包含全部用戶的表,輸入該命令會列舉出每一個用戶的角色,也能夠用-U 參數指定想看哪一個用戶的角色。該命令適用於當前數據庫是Oracle的時候。後端
4、--referer:HTTP Referer頭服務器
SQLMAP能夠在請求中僞造HTTP中的referer,當--level參數設定爲3或3以上時,會嘗試對referer注入。能夠使用referer命令來欺騙,如--referer 網址。cookie
5、--sql-shell:運行自定義SQL語句asp.net
該命令用於執行指定的SQL語句
sqlmap.py -u 網址 --sql-shell
6、--os-cmd,--os-shell:運行任意操做系統命令
在數據庫爲mysql,postgresql或microsoft sql sever,而且當前用戶有權限使用特定的函數時,若是數據庫爲mysql、postgresql,SQLMAP上傳一個二進制庫,包含用戶自定義的函數sys-exec()和says-eval(),那麼建立的這兩個函數就能夠執行系統命令。在microsoft sql sever 中,sqlmap將使用xp-cmdshell存儲過程,若是被禁用(在microsoft sql server 2005及以上版本默認被禁制),則sqlmap會從新啓用它,若是不存在,會自動建立。
用--os-shell參數能夠模擬一個真實的shell,輸入想執行的命令。當不能執行語句時(好比php或asp的後端數據庫爲mysql),仍然能夠使用INTO OUFLE寫進可寫目錄,建立一個web後門。--os-shell支持ASP、asp.net、jsp和php四種語言(要想執行改參數,須要有數據庫管理員權限,也就是--is-dba的值要爲true)。
7、--file-read:從數據庫服務器中讀取文件
該命令用於讀取執行文件,當數據庫爲mysql、postgresql或microsoft sql server,而且當前用戶有權限使用特定的函數時,讀取的文件能夠是文本,也能夠是二進制文件。
sqlmap.py -u 網址 --file-read 文件名 -v 1
8、--file-write --file-dest:上傳文件到數據庫服務器中
該命令用於寫入本地文件到服務器中,當數據庫爲mysql、postgresql或microsoft sql server,而且當前用戶有權限使用特定的函數時,上傳的文件能夠是文本,也能夠是二進制文件。
sqlmap.py -u 網址 --file-write/文件 --file-dest 文件目錄 -v 1