sqlmap命令详解
sqlmap命令详解
1. 基础选项 (Options)
-h: 显示基础帮助。-hh: 显示所有高级参数(即你现在看到的这份)。-v VERBOSE: 日志详细等级 (0-6)。CTF 建议用 3,可以看到发送的 Payload 详情。
2. 目标 (Target)
-u URL: 目标 URL。-r REQUESTFILE: (CTF 必会) 从文件加载 HTTP 请求包。通常配合 Burp Suite 使用。-l LOGFILE: 解析 Burp 代理日志文件。-m BULKFILE: 批量扫描文本文件中的 URL。-g GOOGLEDORK: 扫描 Google 搜索结果。
3. 请求设置 (Request) - 绕过防护关键
--data=DATA: POST 请求的数据。--cookie=COOKIE: 登录后的身份凭证。--random-agent: 使用随机的 User-Agent 绕过简单的指纹识别。--proxy=PROXY: 设置代理(如http://127.0.0.1:8080连 Burp 调试)。--headers=HEADERS: 添加额外的请求头(如X-Forwarded-For)。--tor: 使用 Tor 匿名网络。--delay=DELAY: 两次请求间的延迟(秒)。--eval=EVALCODE: (进阶) 在发送请求前执行 Python 代码(用于计算动态 Token 或签名)。
4. 性能优化 (Optimization)
-o: 开启所有优化开关。--threads=THREADS: 并发线程数。CTF 建议设为 10,提高跑数速度。--keep-alive: 使用持久 HTTP 连接。--null-connection: 只获取页面长度,不下载内容(用于盲注提速)。
5. 注入设置 (Injection)
-p TESTPARAMETER: 指定要测试的参数名。--dbms=DBMS: 强制指定数据库类型(如mysql,sqlite)。--tamper=TAMPER: (核心) 加载混淆脚本。- 常用脚本:
space2comment(空格转注释),base64encode(全编码)。
- 常用脚本:
--prefix/--suffix: 在 Payload 前后加字符串。
6. 检测设置 (Detection)
--level=LEVEL: 探测等级 (1-5)。CTF 建议 3 及以上,会测试 Cookie 注入。--risk=RISK: 风险等级 (1-3)。3 可能会执行delete等危险操作。
7. 技术选择 (Techniques)
--technique=TECH: 默认全部。也可以指定:U(Union),B(Boolean),E(Error),T(Time)。--time-sec=TIMESEC: 时间盲注响应时间(默认 5s)。
8. 枚举信息 (Enumeration) - 拿 Flag 专用
--dbs: 列出所有数据库。--tables: 列出数据库中的表。--columns: 列出表中的列。--dump: (终点) 导出数据表内容。--current-db: 当前使用的数据库。--is-dba: 判断当前是否为数据库管理员权限。--sql-shell: 启动交互式 SQL shell(假 shell)。
9. 操作系统/文件系统访问 (Access)
--file-read=FILE: 读取远程服务器文件。--file-write=FILE: 向服务器写入文件。--os-shell: (神技) 尝试获取服务器操作系统的 Shell。--os-pwn: 尝试通过 Meterpreter 等方式提权。
10. 通用设置 (General)
--batch: (CTF 必加) 自动化模式。所有询问自动选“是”。--flush-session: 清除缓存,强制重新扫描。--forms: 自动解析并测试页面上的所有 HTML 表单。--hex: 传输数据时进行 Hex 编码,防止编码混乱。
11. 杂项 (Miscellaneous)
--update: 更新 sqlmap。--wizard: 为新手提供的向导式操作界面。--list-tampers: 查看所有可用的混淆脚本列表。
💡 CTF 比赛最常用的三条“救命”命令:
最基础探测:
python sqlmap.py -u "URL" --batch
带 Cookie 跑全库:
python sqlmap.py -u "URL" --cookie="PHPSESSID=xxx" --dbs --batch
高强度绕过过滤(针对 WAF):
python sqlmap.py -u "URL" --level=5 --risk=3 --tamper=space2comment,between --batch
常用 CTF 组合口诀
“如果你不知道怎么跑,就用这一条:”
python sqlmap.py -u "URL" --batch --level 3 --threads 10 --dbs
“如果有过滤(WAF):”
python sqlmap.py -u "URL" --tamper=space2comment,between --random-agent --batch
“如果你拿到了 Burp 的请求包(request.txt):”
python sqlmap.py -r request.txt --dump --batch
Levin的小屋