一、sqlmap簡介
1. 概況
開源滲透測試工具,自動檢測和利用SQL注入漏洞並接管資料庫伺服器。
2. 特性
(1)支持眾多資料庫 MSF
(2)支持六種SQL注入技術:布爾,時間,錯誤,Union,堆棧查詢,帶外信道
(3)支持使用tamper腳本進行定製化的攻擊
(4)支持msf和meterpreter的聯動
3. 簡單掃描
sqlmap -u <url>
二、sqlmap參數說明
1. 目標指定類參數
(1)-d
「DBMS:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME」
直接鏈接資料庫
(2)-u <url> 指定url
(3)-l <.log文件> 從log文件中解析目標
(4)-m <文本文件> 從文件中解析目標(日誌文件指http請求的日誌文件,會自帶cookie)
(5)-g <搜索內容> 以google搜索結果作為目標,注意搜索內容中引號要注意轉義
2. 請求、認證類參數(post重點內容)
(1)–method=<http方法> 指定使用的http方法
(2)–data=<post數據> 提交post數據並對post數據進行測試
(3)–param-del=<分隔符> 指定參數的分隔符
(4)–cookie <cookie鍵值對> 添加cookie http請求頭(當–level不小於2時,sqlmap會對cookie頭檢測是否可以注入)
(5)–headers <http請求頭欄位和欄位值> 添加http請求頭,不同的頭使用「\n」分隔
(6)–auth-type、–auth-cred 指定認證方式並指定使用的憑證
(7)–auth-file 指定使用的證書文件
3. 優化類參數
(1)–keep-alive 使用http長連接,該參數與「–proxy」參數矛盾
(2)–null-connection 只獲取http響應的長度(大小)而不獲取真正的響應體,可以節約布爾型盲注使用的帶寬
(3)– threads=<number> 設定線程數
(4)-o 相當於同時設定以上三個參數
4. 注入功能類參數
(1)-p <參數列表> 指定要測試的參數不同的參數使用逗號分隔
(2)–skip=<參數列表> 指定哪些參數不測試,不同參數使用逗號分隔
(3)* 指出為靜態網頁的參數位置,如「/id/1*/」
(4)–dbms <資料庫類型> 指定資料庫類型 一般不要
(5)–prefix <前綴> 指定payload的前綴和後綴
5. 用於sql注入漏洞利用的參數
5.1 獲取資料庫內容的常用命令
(1)-b/–banner 獲取資料庫版本
(2)-current-user 顯示當前資料庫用戶名
(3)–is-dba 判斷當前用戶是否為管理員用戶
(4)–dbs 列出資料庫系統的所有資料庫
5.2 獲取資料庫內容
(1)–dbs 爆庫
-D 用資料庫
(2)
–tables/–exclude-sysdbs/-D 爆表
(3)–columns/-C/-T/-D 爆欄位
(4)
–dump/-C/-T/-D/–start/–stop/–first/–last 爆內容
6. 其他重要參數
(1)–proxy、–proxy-cred、–proxy-file和–ignore-proxy 關於代理的參數
(2)–tor、–tor-type、–tor-port和–check-tor(所有流量經過tor) 關於tor匿名網路的參數
(3)–risk 指定風險等級,告訴sqlmap是否要使用高風險的payload(刪庫改庫)
(4)–level 指定檢測等級,告訴sqlmap檢測的範圍有多大,*該參數比較籠統,可以用-p替代他
(5)–technique 指定要使用的注入技術,默認情況下sqlmap會使用所有sql注入技術
(6)
–common-tables和–common-columns 暴力破解表名和列名
三、sqlmap實際應用
1. 檢測sql注入漏洞的存在
sqlmap -m <文件> –level <數字> –risk <數字>……
2. 使用sqlmap獲取數據
(1)–dbs 爆庫
-D 用資料庫
(2)–tables 爆表
-T 用表
(3)–columns
(4)–dump(注意指定庫)
–dump -all 脫庫
3. 使用sqlmap執行系統命令
(1)–os-cmd <命令>
(2)–os-pwn –msf-path <路徑>——開啟一個meterpreter session
(僅限mysql、postgersql、mssql)
四、sqlmap擴展腳本——tamper腳本
1. Tamper腳本簡介
tamper腳本是sqlmap中用於繞過waf或應對網站過濾邏輯的腳本,sqlmap自帶了一些tamper腳本,我們可以在sqlmap的tampet目錄下查看它們,用戶也可以根據已有的tamper腳本來編寫自己的tamper腳本(繞過邏輯)
2. Tamper腳本使用
(1)sqlmap -u <url>——tamper <tamper腳本>
(2)tamper腳本若放在tamper/目錄下則可以直接寫文件名而不用寫全路徑
3. Tamper腳本編寫
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225397.html
微信掃一掃
支付寶掃一掃