sqlmap工具使用用法詳解

來源:互聯網
上載者:User

sqlmap平時使用得非常的多,但命令也是十分的多。每次用的時候,都要去網上搜尋。於是決定自己總結一下sqlmap常見的用法,方便自己使用。

特殊參數

-v

-v表示顯示sqlmap在進行注入時的詳細資料,一共有七個等級,預設為1

0,只顯示python錯誤以及嚴重的資訊
1,同時顯示基本資料和警告資訊
2,同時顯示debug資訊
3,同時顯示注入的payload
4,同時顯示HTTP請求
5,同時顯示HTTP回應標頭
6,同時顯示HTTP響應頁面
–level

預設情況下SQLMAP只支援GET/POST參數的注入測試,但是當使用–level參數且數值>=2的時候會進行cookie注入測試;當>=3時,會進行User-Agent和Referer的注入測試。

–risk

risk設定風險等級,預設是1會測試大部分的測試語句,2會增加基於事件的測試語句,3會增加OR測試語句。

-f或者–fingerprint

執行檢查廣泛的DBMS版本指紋,這個參數用得不多。

擷取URL

-u或者–url

-u是最常見、常用的用法

python sqlmap.py -u "http://www.example.com/index.php?id=1"
-l

從burpsuite或者WebScarab代理日誌中去測試每個URL是否存在SQL注入

-r

從文字檔中擷取HTTP請求(這就要求此文字檔儲存的資訊是HTTP請求的),這樣HTTP就可以利用HTTP請求中的參數。
例如文字檔中的內容為:


POST /index.php HTTP/1.1
Hos: www.example.com
User-Agent: Mozilla/4.0

id=1
那麼使用sqlmap進行注入時,sqlmap自動將HOST和User-Agent設定為文字檔中的值
當處理的請求是HTTPS的時候,則需要使用–forc-ssl參數來使用,或者在HOST頭後面加上:443。

請求

POST請求

參數:–data
–data主要適用於POST方式提交。用法如下:


python sqlmap.py -u "http://www.example.com/index.php" --data="id=1"
cookie相關

參數:-cookie,–load-cookies,–drops-set-cookie
cookie參數在sqlmap中的應用主要是有2個方面:

Web應用需要進行登陸的時候
測試cookie注入
如果需要使用cookie進行登陸,則需要通過–cookie將cookie進行賦值。在HTTP請求中,遇到Set-cookie時,sqlmap會自動擷取並且在以後的請求中加入,並且會嘗試SQL注入。
當–level>=2時,則會嘗試進行cookie的注入測試。
User-Agent相關

參數:–user-agent,–random-agent
預設情況下sqlmap的HTTP要求標頭中的User-Agent是:


sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
可以使用–user-agent參數來進行修改,同時也可以使用–random-agent參數來隨機化的從./txt/user-agents.txt中擷取。
當–level參數設定為3或者是3以上時,會嘗試對User-Agent進行注入測試。

Referer頭

參數:–referer
sqlmap可以在請求中偽造HTTP中的referer,用法與user-agent的用法相同。當–level參數設定為3或者3以上的時候會嘗試對referer注入。

請求設定

設定請求間隔

參數:–delay
設定兩次請求間的時間間隔。若設定為0.5則表示間隔時間是半秒,預設是沒有延遲

設定逾時時間

參數:–tiemout
設定逾時時間,主要是設定一個請求超過多久被判定為超市。弱設定為10.5表示是10.5秒,預設是30秒。

設定逾時重試

參數:–retries
當請求逾時時,設定重新嘗試串連次數,預設是3次。

關掉URL參數編碼

參數:–skip-urlencode
關閉URL編碼,這個參數一般用得比較少。目前幾乎所有的web伺服器都支援RFC標準。

執行自訂Python代碼

參數:–eval
在有些時候,需要根據一個參數的變化而修改另一個參數,才能形成正常的請求。此時就需要使用到--eval。例子如下


python sqlmap.py -u "http://www.example.com?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"
上面的請求參數中的hash值就是id值的md5,這時就需要使用到自訂Python代碼了。

注入

測試參數

參數:-p,–skip
-p,表示的就是需要進行注入測試的參數。例如,-p “id,user-agent”
–skip,表示不不需要進行測試的參數,例如–skip=”user-agent”

偽靜態注入

很多架構會使用URL重寫技術,此時sqlmap就無法使用參數注入,但是可以在需要測試的參數後面加上*
例子如下


python sqlmap.py -u "http://blog.spoock.com/2016/09/04*/sqli-bypass/"
繞WAF

參數:–tamper
很多時候有WAF裝置會攔截sqlmap的注入,此時就需要使用--tamper對注入的SQL語句進行變形來進行繞過。所有的tamper指令碼都是在sqlmap中的tamper中的指令碼有定義的,可以進入到tamper目錄下進行查看。


python sqlmap.py - u"http://www.example.com?id=1" --tamper tamper/between.py,tamper/randomcase.py
提取資料

標誌

參數:-b,–banner
檢索資料庫管理系統的標識

使用者

參數:–current-user
返回當前資料庫的系統管理使用者

當前資料庫

參數:–current-db
返回當前串連的資料庫

DBA檢測

參數:–is-dba
檢測當前的系統管理使用者是否是DBA

資料庫枚舉

參數:–dbs
如果當前的使用者可以讀取所有的資料庫的資訊,即可列出所有的資料庫

資料庫表枚舉

參數:–tables -D someDatabase
列出某個資料庫(someDatabase)中所有的表名,例子如下:


python sqlmap.py -u "http://www.example.com?id=1" --tables -D cms
欄位枚舉

參數:–columns -D someDatabase -T someTable
列出someDatabase資料庫中的someTable表中的所有的欄位資訊。如果沒有使用-D參數指定某個資料庫的時候,則預設使用當前資料庫


Python sqlamp.py -u "http://www.example.com?id=1" --columns -D cms -T users
擷取表中資料的數目

參數:–count
使用–count就可以擷取表中資料的個數


python sqlmap.py -u"http://www.example.com?id=1" --count -D cms
上述的sqlmap的語句會列出在cms資料庫中所有的表的資料

下載表中的資料

參數:–dump -D someDatabase -T someTable -C someColumns
使用–dump就可以將某個表中的資料下載到本地。指定-C的值表示是下載某一列所有的資料,如果沒有指定則是下載表中所有的資料。


python sqlmap.py -u "http://www.example.com?id=1" --dump -D cms - T users
MISC

自訂SQL語句

參數:–sql-query,–sql-shell
雖然sqlmap會自行選擇sql語句進行測試,但是也可以選擇執行自訂的SQL語句。


python sqlmap.py -u"http://www.example.com?id=1" --sql-query "select database()"
擷取shell

參數:–os-cmd,–os-shell
使用–os-shell參數可以類比一個真實的shell,在此shell上可以輸入任何想執行的命令。
這個命令平時使用得較少,等有一定的使用體會再來進行詳細的補充說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.