sqlmap使用
一sqlmap支持的sql注入技術
默認使用以下六種技術, --technique參數設置使用具體技術
B基於布爾盲注,即根據返回頁面判斷條件真假的注入
E報錯注入,即頁面返回報錯信息,或者把注入的語句的結果直接返回在頁面中
U查詢注入,可以使用union的情況下的注入。默認查詢十列 。--union-cols 整數-整數 增大查詢列的范圍 。默認查詢字符為null,可以通過--union-char 字符設置相應字符
S堆疊注入,可以同時執行多條語句的執行時的注入
T基於時間盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲。--time-sec 數 設置等待時間,默認為5秒
Q內聯查詢注入
二sqlmap基本探測
直接連接數據庫
sqlmap -d "mysql://用戶名:密碼@ip地址:端口/數據庫名" --sql-shell(可選參數,進行shell管理)
對url探測
get方式:sqlmap -u "url"
post方式:sqlmap -u "url" --data "post數據"
cookie方式:sqlmap -u "url" --cookie "cookie數據"。--cookie-del 設置cookie分隔符。--load-cookies 通過帶有cookie的文件進行探測注入。--drop-set-cookie如果響應中使用set-cookie設置了新的cookie,sqlmap會在之后的探測中使用它,可以用這個參數忽略新cookie。如果是對cookie進行注入則要通過--level 2及以上
對文件探測
-l從bp等讀取http日志請求文件
-m讀取文件中多個url,同時對多個url進行探測
-r主要用來檢測http請求信息如user-agent中是否存在注入
-c從sqlmap.config讀取配置好的信息進行探測
--scope="正則表達式"篩選文件中的一些信息
三sqlmap枚舉
枚舉數據庫名--dbs
枚舉數據庫表--tables
枚舉列名--columns
枚舉數據--dump
--users枚舉用戶名
--password 枚舉用戶密碼
--role 枚舉用戶權限
四sqlmap性能優化
--keep-alive 設置持久連接,加快探測速度
--null-connection 檢索沒有body響應的內容,多用於盲注
--thread 最大為10 設置多線程
-o 開啟所有默認性能優化
-smart 快速判斷,節約時間
設置延遲 --delay 時間 。當頁面無變化,布爾無真假,從來不報錯時用延時注入
設置超時 --timeout 時間
設置重新連接次數 --retries 次數
五sqlmap指定注入
-p 指定具體探測參數
*加到參數的后面,指定url或者報文頭上的一些參數進行探測
--os 操作系統 sqlamp會自動識別,但也可以以此指定
--dbms 數據庫類型 sqlamp會自動識別,但也可以以此指定
六使用temper腳本
tamper腳本使用(sqlmap目錄下,tamper文件夾存放)
--temper “腳本名稱,多個腳本用逗號分隔”
七其它參數
--level 1-5 執行的測試等級,默認為1,cookie在2時測試,use-agent在3時測試。一些探測只有設置值達到一定等級時才探測
--batch 自動選擇yes
--risk 執行風險等級,默認為1,2增加基於事件的測試語句,3增加or語句的sql測試
--identify-waf檢測防火牆類型
--param-del="分割符"設置參數的分割符
設置http協議私鑰 --auth-file 包含私鑰證書的文件
--skip-urlencode 不進行url編碼
八sqlmap對http參數的注入
用sqlmap探測,它的user-qgent會有特定的值,容易被檢測過濾,所以可以使用如下命令更改
--user-agent=""設置指定的值
--random-agent 從自帶的文件中隨機選取一個值
如果是對user-agent進行注入,可以在文件的相應參數后面加* 否則應該使--level 3及以上
如果對host注入的level應該為5
如果對refer注入level應該為3
設置http認證參數
--auth-type 有basic ntlm digest
--auth-cred 語法為username:password
九sqlmap進行命令執行
--os-cmd="命令"(要知道網站的絕對路徑)
sqlmap寫webshell
--os-shell
上傳自己的wellshell,--file-write "本地文件地址" --file-dest "目標文件地址"
十sqlmap設置代理
隱藏自己的真實ip
--proxy http://ip:端口
--proxy-file 使用一個包含多條代理的文件中的代理
--proxy-cred 語法為username:password