SQL注入神器SQLMap參數(shù)詳解
一、介紹
SQLMap 是一款用于自動化 SQL 注入檢測與滲透測試的開源工具,其主要功能是檢測和利用 Web 應(yīng)用程序中的 SQL 注入漏洞。以下是 SQLMap 的主要特點和功能:
自動化檢測:SQLMap 可以自動發(fā)現(xiàn) Web 應(yīng)用程序中的 SQL 注入漏洞,包括基于 GET 和 POST 參數(shù)的注入點,以及 Cookie 和 HTTP 頭部等。
支持多種數(shù)據(jù)庫:SQLMap 支持檢測和利用多種類型的數(shù)據(jù)庫,包括 MySQL、Oracle、SQL Server、PostgreSQL 等。
綜合測試:SQLMap 提供了豐富的測試選項,可以進行盲注、時間延遲注入、報錯注入等多種測試方式,以驗證注入漏洞的存在性和可利用性。
漏洞利用:SQLMap 能夠利用發(fā)現(xiàn)的 SQL 注入漏洞執(zhí)行各種操作,包括獲取數(shù)據(jù)庫中的數(shù)據(jù)、讀取文件、執(zhí)行系統(tǒng)命令等。
批量掃描:SQLMap 支持批量掃描,可以同時對多個目標進行檢測和利用,提高效率。
細粒度控制:SQLMap 提供了豐富的命令行選項和配置參數(shù),用戶可以對掃描和利用過程進行細粒度的控制和定制。
報告生成:SQLMap 能夠生成詳細的掃描和利用報告,包括發(fā)現(xiàn)的漏洞、執(zhí)行的操作和結(jié)果等信息,便于分析和整理。
總的來說,SQLMap 是一款功能強大的 SQL 注入工具,可幫助安全研究人員、滲透測試人員和開發(fā)人員發(fā)現(xiàn)和修復(fù) Web 應(yīng)用程序中的 SQL 注入漏洞,從而提高應(yīng)用程序的安全性。
二、安裝 SQLMap
Kail Linux 默認自帶了這款工具,所以只需使用 Kail 即可
三、使用 SQLMap
3.1 查看幫助
sqlmap -h
參數(shù)解析:
基本選項: -h, --help: 顯示基本的幫助信息并退出。 -hh: 顯示高級的幫助信息并退出。 --version: 顯示程序的版本號并退出。 -v VERBOSE: 設(shè)置詳細程度級別,范圍從 0 到 6,默認是 1。 目標: -u URL, --url=URL: 指定目標 URL。 -g GOOGLEDORK: 處理 Google dork 結(jié)果作為目標 URL。 請求: --data=DATA: 發(fā)送的 POST 數(shù)據(jù)字符串。 --cookie=COOKIE: HTTP Cookie 頭的值。 --random-agent: 使用隨機選擇的 HTTP User-Agent 頭值。 --proxy=PROXY: 使用代理連接到目標 URL。 --tor: 使用 Tor 匿名網(wǎng)絡(luò)。 --check-tor: 檢查 Tor 是否被正確使用。 注入: -p TESTPARAMETER: 測試的參數(shù)。 --dbms=DBMS: 強制后端數(shù)據(jù)庫管理系統(tǒng)為提供的值。 檢測: --level=LEVEL: 執(zhí)行測試的級別(1-5,默認是 1)。 --risk=RISK: 執(zhí)行測試的風險級別(1-3,默認是 1)。 技術(shù): --technique=TECH..: 要使用的 SQL 注入技術(shù)(默認是 "BEUSTQ")。 枚舉: -a, --all: 檢索所有信息。 -b, --banner: 檢索數(shù)據(jù)庫管理系統(tǒng)的 banner。 --current-user: 檢索數(shù)據(jù)庫管理系統(tǒng)的當前用戶。 --current-db: 檢索當前數(shù)據(jù)庫的名稱(此參數(shù)描述被截斷,所以完整功能可能還包括更多內(nèi)容)。 這些參數(shù)提供了 sqlmap 的各種功能和定制選項,使用戶能夠根據(jù)自己的需求執(zhí)行 SQL 注入測試和數(shù)據(jù)庫接管任務(wù)。
3.2 高級幫助
sqlmap -hh
3.2.1 目標
至少需要提供以下選項之一來定義目標
-u URL, --url=URL 目標URL(例如:"http://www.site.com/vuln.php?id=1") -d DIRECT 用于直接數(shù)據(jù)庫連接的連接字符串 -l LOGFILE 從Burp或WebScarab代理日志文件解析目標 -m BULKFILE 掃描文本文件中提供的多個目標 -r REQUESTFILE 從文件中加載HTTP請求 -g GOOGLEDORK 處理Google Dork結(jié)果作為目標URL -c CONFIGFILE 從配置INI文件中加載選項
3.2.2 請求
這些選項可以用于指定如何連接到目標URL
-A AGENT, --user-agent=AGENT 設(shè)置HTTP User-Agent頭信息的值 -H HEADER, --header=HEADER 添加額外的HTTP頭信息(例如:"X-Forwarded-For: 127.0.0.1") --method=METHOD 強制使用指定的HTTP方法(例如:PUT) --data=DATA 通過POST發(fā)送的數(shù)據(jù)字符串(例如:"id=1") --param-del=PARAM_DELIMITER 用于分隔參數(shù)值的字符(例如:&) --cookie=COOKIE 設(shè)置HTTP Cookie頭信息的值(例如:"PHPSESSID=a8d127e..") --cookie-del=COOKIE_DELIMITER 用于分隔cookie值的字符(例如:;) --live-cookies=LIVE_COOKIES 用于加載最新值的實時cookies文件 --load-cookies=LOAD_COOKIES 包含以Netscape/wget格式編寫的cookies的文件 --drop-set-cookie 忽略響應(yīng)中的Set-Cookie頭信息 --mobile 通過HTTP User-Agent頭信息模擬智能手機 --random-agent 使用隨機選擇的HTTP User-Agent頭信息值 --host=HOST 設(shè)置HTTP Host頭信息的值 --referer=REFERER 設(shè)置HTTP Referer頭信息的值 --headers=HEADERS 添加額外的頭信息(例如:"Accept-Language: fr\nETag: 123") --auth-type=AUTH_TYPE HTTP認證類型(Basic, Digest, Bearer, ...) --auth-cred=AUTH_CREDENTIALS HTTP認證憑據(jù)(用戶名:密碼) --auth-file=AUTH_FILE HTTP認證PEM證書/私鑰文件 --abort-code=ABORT_CODE 在遇到(有問題的)HTTP錯誤代碼時中止(例如:401) --ignore-code=IGNORE_CODE 忽略(有問題的)HTTP錯誤代碼(例如:401) --ignore-proxy 忽略系統(tǒng)默認的代理設(shè)置 --ignore-redirects 忽略重定向嘗試 --ignore-timeouts 忽略連接超時 --proxy=PROXY 使用代理連接到目標URL --proxy-cred=PROXYCRED 設(shè)置代理的身份驗證憑據(jù)(格式:用戶名:密碼) --proxy-file=PROXYFILE 從文件中加載代理列表 --proxy-freq=PROXYFREQ 從給定列表中更換代理之間的請求次數(shù) --tor 使用Tor匿名網(wǎng)絡(luò) --tor-port=TORPORT 設(shè)置非默認的Tor代理端口 --tor-type=TORTYPE 設(shè)置Tor代理類型(HTTP、SOCKS4或SOCKS5(默認)) --check-tor 檢查Tor是否正確使用 --delay=DELAY 每個HTTP請求之間的延遲(秒) --timeout=TIMEOUT 連接超時前的等待時間(默認30秒) --retries=RETRIES 連接超時時的重試次數(shù)(默認3次) --retry-on=RETRYON 當內(nèi)容匹配正則表達式時重試請求(例如:"drop") --randomize=RPARAM 隨機改變給定參數(shù)的值 --safe-url=SAFEURL 在測試期間頻繁訪問的URL地址 --safe-post=SAFEPOST 向安全URL發(fā)送的POST數(shù)據(jù) --safe-req=SAFEREQ 從文件中加載安全的HTTP請求 --safe-freq=SAFEFREQ 在訪問安全URL之間的常規(guī)請求頻率 --skip-urlencode 跳過有效負載數(shù)據(jù)的URL編碼 --csrf-token=CSRFTOKEN 用于存放反CSRF令牌的參數(shù) --csrf-url=CSRFURL 提取反CSRF令牌的URL地址 --csrf-method=CSRFMETHOD 在訪問反CSRF令牌頁面時使用的HTTP方法 --csrf-data=CSRFDATA 在訪問反CSRF令牌頁面時發(fā)送的POST數(shù)據(jù) --csrf-retries=CSRFRETRIES 反CSRF令牌檢索的重試次數(shù)(默認0次) --force-ssl 強制使用SSL/HTTPS --chunked 使用HTTP分塊傳輸編碼(POST)請求 --hpp 使用HTTP參數(shù)污染方法 --eval=EVALCODE 在請求之前評估提供的Python代碼(例如:"import hashlib;id2=hashlib.md5(id).hexdigest()")
3.2.3 優(yōu)化
這些選項可以用于優(yōu)化sqlmap的性能
-o 啟用所有優(yōu)化開關(guān) --predict-output 預(yù)測常見查詢的輸出 --keep-alive 使用持久的HTTP(s)連接 --null-connection 在不獲取實際HTTP響應(yīng)體的情況下檢索頁面長度 --threads=THREADS 并發(fā)HTTP(s)請求的最大數(shù)量(默認為1)
3.2.4 注入
這些選項可用于指定要測試的參數(shù),提供自定義注入負載和可選的篡改腳本
-p TESTPARAMETER 要測試的參數(shù) --skip=SKIP 跳過給定參數(shù)的測試 --skip-static 跳過測試非動態(tài)參數(shù) --param-exclude=.. 正則表達式,用于從測試中排除參數(shù)(例如:"ses") --param-filter=P.. 按位置選擇可測試的參數(shù)(例如:"POST") --dbms=DBMS 強制后端DBMS為提供的值 --dbms-cred=DBMS.. DBMS身份驗證憑據(jù)(用戶名:密碼) --os=OS 強制后端DBMS操作系統(tǒng)為提供的值 --invalid-bignum 使用大數(shù)來使值無效 --invalid-logical 使用邏輯運算來使值無效 --invalid-string 使用隨機字符串來使值無效 --no-cast 關(guān)閉負載轉(zhuǎn)換機制 --no-escape 關(guān)閉字符串轉(zhuǎn)義機制 --prefix=PREFIX 注入負載前綴字符串 --suffix=SUFFIX 注入負載后綴字符串 --tamper=TAMPER 使用給定的腳本來篡改注入數(shù)據(jù)
3.2.5 檢測
這些選項可用于自定義檢測階段
--level=LEVEL 要執(zhí)行的測試級別(1-5,默認為1) --risk=RISK 要執(zhí)行測試的風險等級(1-3,默認為1) --string=STRING 當查詢評估為True時,要匹配的字符串 --not-string=NOT.. 當查詢評估為False時,要匹配的字符串 --regexp=REGEXP 當查詢評估為True時,要匹配的正則表達式 --code=CODE 當查詢評估為True時,要匹配的HTTP狀態(tài)碼 --smart 僅當啟發(fā)式結(jié)果為正時,才執(zhí)行詳盡的測試 --text-only 僅基于文本內(nèi)容比較頁面 --titles 僅基于標題比較頁面
3.2.6 技巧
這些選項可用于調(diào)整特定SQL注入技術(shù)的測試
--technique=TECH.. 要使用的SQL注入技術(shù)(默認為"BEUSTQ") --time-sec=TIMESEC DBMS響應(yīng)的延遲時間(秒)(默認為5) --union-cols=UCOLS 用于UNION查詢SQL注入的測試列范圍 --union-char=UCHAR 用于暴 力 破 解列數(shù)的字符 --union-from=UFROM UNION查詢SQL注入中FROM部分使用的表 --union-values=U.. UNION查詢SQL注入中使用的列值 --dns-domain=DNS.. DNS泄露攻擊中使用的域名 --second-url=SEC.. 搜索二階響應(yīng)的結(jié)果頁面URL --second-req=SEC.. 從文件中加載二階HTTP請求
3.2.7 指紋
-f, --fingerprint 執(zhí)行詳盡的DBMS版本指紋檢測
3.2.8 暴力
這些選項可用于運行 暴 力 破 解檢查
--common-tables 檢查常見表的存在性 --common-columns 檢查常見列的存在性 --common-files 檢查常見文件的存在性
3.2.9 用戶自定義函數(shù)注入
這些選項可用于創(chuàng)建自定義用戶定義函數(shù)
--udf-inject 注入自定義用戶定義函數(shù) --shared-lib=SHLIB 共享庫的本地路徑
3.2.10 文件系統(tǒng)訪問
這些選項可用于訪問后端數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)文件系統(tǒng)
--file-read=FILE.. 從后端DBMS文件系統(tǒng)中讀取文件 --file-write=FIL.. 在后端DBMS文件系統(tǒng)中寫入本地文件 --file-dest=FILE.. 后端DBMS要寫入的絕對文件路徑
3.2.11 枚舉
這些選項可用于枚舉后端數(shù)據(jù)庫管理系統(tǒng)的信息、結(jié)構(gòu)以及表中包含的數(shù)據(jù)
-a, --all 檢索所有內(nèi)容 -b, --banner 檢索DBMS橫幅(版本信息) --current-user 檢索DBMS當前用戶 --current-db 檢索DBMS當前數(shù)據(jù)庫 --hostname 檢索DBMS服務(wù)器主機名 --is-dba 檢測DBMS當前用戶是否為DBA --users 枚舉DBMS用戶 --passwords 枚舉DBMS用戶密碼哈希 --privileges 枚舉DBMS用戶權(quán)限 --roles 枚舉DBMS用戶角色 --dbs 枚舉DBMS數(shù)據(jù)庫 --tables 枚舉DBMS數(shù)據(jù)庫表 --columns 枚舉DBMS數(shù)據(jù)庫表列 --schema 枚舉DBMS模式 --count 檢索表的條目數(shù)量 --dump 導(dǎo)出DBMS數(shù)據(jù)庫表條目 --dump-all 導(dǎo)出所有DBMS數(shù)據(jù)庫表的條目 --search 搜索列、表和/或數(shù)據(jù)庫名 --comments 在枚舉期間檢查DBMS注釋 --statements 檢索在DBMS上運行的SQL語句 -D DB 要枚舉的DBMS數(shù)據(jù)庫 -T TBL 要枚舉的DBMS數(shù)據(jù)庫表 -C COL 要枚舉的DBMS數(shù)據(jù)庫表列 -X EXCLUDE 不枚舉的DBMS數(shù)據(jù)庫標識符 -U USER 要枚舉的DBMS用戶 --exclude-sysdbs 在枚舉表時排除DBMS系統(tǒng)數(shù)據(jù)庫 --pivot-column=P.. 透視列名 --where=DUMPWHERE 在導(dǎo)出表時使用WHERE條件 --start=LIMITSTART 要檢索的第一個表條目 --stop=LIMITSTOP 要檢索的最后一個表條目 --first=FIRSTCHAR 要檢索的查詢輸出單詞的第一個字符 --last=LASTCHAR 檢索查詢輸出單詞的最后一個字符 --sql-query=SQLQ.. 執(zhí)行指定的SQL語句 --sql-shell 進入交互式SQL shell --sql-file=SQLFILE 從指定的文件(s)中執(zhí)行SQL語句
3.2.12 操作系統(tǒng)訪問
這些選項可用于訪問后端數(shù)據(jù)庫管理系統(tǒng)底層的操作系統(tǒng)
--os-cmd=OSCMD 執(zhí)行操作系統(tǒng)命令 --os-shell 進入交互式操作系統(tǒng)shell --os-pwn 提示進入OOB shell、Meterpreter或VNC --os-smbrelay 一鍵提示進入OOB shell、Meterpreter或VNC --os-bof 利用存儲過程緩沖區(qū)溢出進行攻擊 --priv-esc 提升數(shù)據(jù)庫進程用戶權(quán)限 --msf-path=MSFPATH Metasploit Framework安裝的本地路徑 --tmp-path=TMPPATH 遠程臨時文件目錄的絕對路徑
3.2.13 Windows注冊表訪問
這些選項可用于訪問后端數(shù)據(jù)庫管理系統(tǒng)的Windows注冊表
--reg-read 讀取Windows注冊表鍵值 --reg-add 寫入Windows注冊表鍵值數(shù)據(jù) --reg-del 刪除Windows注冊表鍵值 --reg-key=REGKEY Windows注冊表鍵 --reg-value=REGVAL Windows注冊表鍵值 --reg-data=REGDATA Windows注冊表鍵值數(shù)據(jù) --reg-type=REGTYPE Windows注冊表鍵值類型
3.2.14 通用選項
這些選項可用于設(shè)置一些通用的工作參數(shù)
-s SESSIONFILE 從存儲的(.sqlite)文件中加載會話 -t TRAFFICFILE 將所有HTTP流量記錄到文本文件中 --abort-on-empty 在結(jié)果為空時中止數(shù)據(jù)檢索 --answers=ANSWERS 設(shè)置預(yù)定義的答案(例如 "quit=N,follow=N") --base64=BASE64P.. 包含Base64編碼數(shù)據(jù)的參數(shù) --base64-safe 使用URL和文件名安全的Base64字母表(RFC 4648) --batch 從不詢問用戶輸入,使用默認行為 --binary-fields=.. 具有二進制值的結(jié)果字段(例如 "digest") --check-internet 在評估目標之前檢查互聯(lián)網(wǎng)連接 --cleanup 從DBMS中清除sqlmap特定的UDF和表 --crawl=CRAWLDEPTH 從目標URL開始爬取網(wǎng)站 --crawl-exclude=.. 用于從爬取中排除頁面的正則表達式(例如 "logout") --csv-del=CSVDEL CSV輸出中使用的分隔字符(默認為",") --charset=CHARSET 盲注字符集(例如 "0123456789abcdef") --dump-file=DUMP.. 將轉(zhuǎn)儲數(shù)據(jù)保存到自定義文件 --dump-format=DU.. 轉(zhuǎn)儲數(shù)據(jù)的格式(CSV(默認)、HTML或SQLITE) --encoding=ENCOD.. 用于數(shù)據(jù)檢索的字符編碼(例如 GBK) --eta 顯示每個輸出的預(yù)計到達時間 --flush-session 刷新當前目標的會話文件 --forms 解析并測試目標URL上的表單 --fresh-queries 忽略會話文件中存儲的查詢結(jié)果 --gpage=GOOGLEPAGE 使用指定頁碼上的Google dork結(jié)果 --har=HARFILE 將所有HTTP流量記錄到HAR文件中 --hex 在數(shù)據(jù)檢索期間使用十六進制轉(zhuǎn)換 --output-dir=OUT.. 自定義輸出目錄路徑 --parse-errors 解析并顯示響應(yīng)中的DBMS錯誤消息 --preprocess=PRE.. 使用給定的腳本進行預(yù)處理(請求) --postprocess=PO.. 使用給定的腳本進行后處理(響應(yīng)) --repair 重新轉(zhuǎn)儲含有未知字符標記(?)的條目 --save=SAVECONFIG 將選項保存到配置文件(INI格式) --scope=SCOPE 用于過濾目標的正則表達式 --skip-heuristics 跳過漏洞的啟發(fā)式檢測 --skip-waf 跳過WAF/IPS保護的啟發(fā)式檢測 --table-prefix=T.. 用于臨時表的前綴(默認為 "sqlmap") --test-filter=TE.. 通過載荷和/或標題選擇測試(例如 ROW) --test-skip=TEST.. 通過載荷和/或標題跳過測試(例如 BENCHMARK) --time-limit=TIM.. 在指定秒數(shù)內(nèi)運行(例如 3600) --web-root=WEBROOT Web服務(wù)器文檔根目錄(例如 "/var/www")
3.2.15 雜項
這些選項不屬于任何其他類別
-z MNEMONICS 使用簡短的助記符(例如 "flu,bat,ban,tec=EU") --alert=ALERT 當發(fā)現(xiàn)SQL注入時,運行主機操作系統(tǒng)命令 --beep 在提問時和/或發(fā)現(xiàn)漏洞時發(fā)出蜂鳴聲 --dependencies 檢查缺失的(可選)sqlmap依賴項 --disable-coloring 禁用控制臺輸出的顏色 --list-tampers 顯示可用的篡改腳本列表 --no-logging 禁用日志記錄到文件 --offline 在離線模式下工作(僅使用會話數(shù)據(jù)) --purge 安全地從sqlmap數(shù)據(jù)目錄中刪除所有內(nèi)容 --results-file=R.. 在多個目標模式下CSV結(jié)果文件的位置 --shell 提示交互式sqlmap shell --tmp-dir=TMPDIR 用于存儲臨時文件的本地目錄 --unstable 為不穩(wěn)定的連接調(diào)整選項 --update 更新sqlmap --wizard 為初學者用戶提供的簡單向?qū)Ы缑?/pre>
到此這篇關(guān)于SQL注入神器SQLMap參數(shù)詳解的文章就介紹到這了,更多相關(guān)SQLMap 參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sql cast,convert,QUOTENAME,exec 函數(shù)學習記錄
將某種數(shù)據(jù)類型的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。CAST 和 CONVERT 提供相似的功能。2009-10-10淺談數(shù)據(jù)庫日期類型字段設(shè)計應(yīng)該如何選擇
本文主要介紹了數(shù)據(jù)庫日期類型字段設(shè)計應(yīng)該如何選擇,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08三種實現(xiàn)方法實現(xiàn)數(shù)據(jù)表中遍歷尋找子節(jié)點
數(shù)據(jù)表中遍歷尋找子節(jié)點的三種實現(xiàn)方法:2008-05-05MySQL多表聯(lián)查給null賦值的實現(xiàn)
NULL值表示缺失或未知的數(shù)據(jù),本文主要介紹了MySQL多表聯(lián)查給null賦值的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-08-08