sqlmap用戶手冊(三)——請求

請求


http數據

參數:--data

此參數是把數據以POST方式提交,sqlmap會像檢測GET參數一樣檢測POST的參數。

例子:

python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banner --dbs --users

參數拆分字符

參數:--param-del

當GET或POST的數據需要用其他字符分割測試參數的時候需要用到此參數。

例子:

python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" -f --banner --dbs --users

HTTP cookie頭

參數:--cookie,--load-cookies,--drop-set-cookie

這個參數在以下兩個方面很有用:

1、web應用需要登陸的時候。

2、你想要在這些頭參數中測試SQL注入時。

可以通過抓包把cookie獲取到,複製出來,然後加到--cookie參數裏。

在HTTP請求中,遇到Set-Cookie的話,sqlmap會自動獲取並且在以後的請求中加入,並且會嘗試SQL注入。

如果你不想接受Set-Cookie可以使用--drop-set-cookie參數來拒接。

當你使用--cookie參數時,當返回一個Set-Cookie頭的時候,sqlmap會詢問你用哪個cookie來繼續接下來的請求。當--level的參數設定爲2或者2以上的時候,sqlmap會嘗試注入Cookie參數。

HTTP User-Agent頭

參數:--user-agent,--random-agent

默認情況下sqlmap的HTTP請求頭中User-Agent值是:

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)

可以使用--user-anget參數來修改,同時也可以使用--random-agnet參數來隨機的從./txt/user-agents.txt中獲取。

當--level參數設定爲3或者3以上的時候,會嘗試對User-Angent進行注入。

HTTP Referer頭

參數:--referer

sqlmap可以在請求中僞造HTTP中的referer,當--level參數設定爲3或者3以上的時候會嘗試對referer注入。

額外的HTTP頭

參數:--headers

可以通過--headers參數來增加額外的http頭

HTTP認證保護

參數:--auth-type,--auth-cred

這些參數可以用來登陸HTTP的認證保護支持三種方式:

1、Basic

2、Digest

3、NTLM

例子:

python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"

HTTP協議的證書認證

參數:--auth-cert

當Web服務器需要客戶端證書進行身份驗證時,需要提供兩個文件:key_file,cert_file。

key_file是格式爲PEM文件,包含着你的私鑰,cert_file是格式爲PEM的連接文件。

HTTP(S)代理

參數:--proxy,--proxy-cred和--ignore-proxy

使用--proxy代理是格式爲:http://url:port。

當HTTP(S)代理需要認證是可以使用--proxy-cred參數:username:password。

--ignore-proxy拒絕使用本地局域網的HTTP(S)代理。

HTTP請求延遲

參數:--delay

可以設定兩個HTTP(S)請求間的延遲,設定爲0.5的時候是半秒,默認是沒有延遲的。

設定超時時間

參數:--timeout

可以設定一個HTTP(S)請求超過多久判定爲超時,10.5表示10.5秒,默認是30秒。

設定重試超時

參數:--retries

當HTTP(S)超時時,可以設定重新嘗試連接次數,默認是3次。

設定隨機改變的參數值

參數:--randomize

可以設定某一個參數值在每一次請求中隨機的變化,長度和類型會與提供的初始值一樣。

利用正則過濾目標網址

參數:--scope

例如:

python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

避免過多的錯誤請求被屏蔽

參數:--safe-url,--safe-freq

有的web應用程序會在你多次訪問錯誤的請求時屏蔽掉你以後的所有請求,這樣在sqlmap進行探測或者注入的時候可能造成錯誤請求而觸發這個策略,導致以後無法進行。

繞過這個策略有兩種方式:

1、--safe-url:提供一個安全不錯誤的連接,每隔一段時間都會去訪問一下。
2、--safe-freq:提供一個安全不錯誤的連接,每次測試請求之後都會再訪問一邊安全連接。

關掉URL參數值編碼

參數:--skip-urlencode

根據參數位置,他的值默認將會被URL編碼,但是有些時候後端的web服務器不遵守RFC標準,只接受不經過URL編碼的值,這時候就需要用--skip-urlencode參數。

每次請求時候執行自定義的python代碼

參數:--eval

在有些時候,需要根據某個參數的變化,而修改另個一參數,才能形成正常的請求,這時可以用--eval參數在每次請求時根據所寫python代碼做完修改後請求。

例子:

python sqlmap.py -u "http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

上面的請求就是每次請求時根據id參數值,做一次md5後作爲hash參數的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章