Contents

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