用途:在确认存在 SQL 注入后,用 sqlmap 进行自动化检测与利用,属于渗透测试参考资料。
主要能力:
- 注入位置:GET 参数、POST 表单(--data,需包含 submit 等所有字段)、Cookie(--cookie,--level 3)、HTTP Header(--headers,用 * 标记注入点,--level 5),也可从 Burp 请求文件读取(-r /tmp/request.txt)。
- 技术控制:--technique 字母 B(布尔盲注)、E(报错)、U(UNION)、S(堆叠查询)、T(时间盲注,最后手段)、Q(内联查询)。建议先 --technique EU 快速检测,再补 B,最后试 T。
- 数据提取:--dbs、-D 库 --tables、-D 库 -T 表 --columns、--dump、-C 列名 --dump、--start/--stop 限制行数、--search -T/--search -C 搜索表或列。
- 高级:tamper 脚本(如 --tamper=space2comment,between)、--file-read、--file-write 配合 --file-dest、--os-shell、--second-url 二次注入;详细命令见 references/advanced-usage.md,tamper 速查见 references/tamper-reference.md。
用法要点:命令必须用 timeout 包裹并保存日志,例如 timeout 480 sqlmap [参数] --batch 2>&1 | tee /tmp/sqlmap_output.log,超时后 tail -80 /tmp/sqlmap_output.log 查看已有结果。--batch 必加,因自动化环境无法交互。
限制与注意:--risk 3 可能执行 UPDATE/DELETE,有风险环境慎用;sqlmap 会缓存结果,重跑需 --flush-session;若工具检测不到但手工确认存在注入,可用 --prefix 与 --suffix 手动指定闭合。仅限合法授权测试使用。