自动注入检测
对目标 URL、POST 数据、Cookie 等参数进行系统化测试,识别可用的 SQL 注入点并给出技术类型判断。
sqlmap 专注于自动发现并利用 Web 应用中的 SQL 注入点,完成后端数据库指纹识别、结构枚举与数据提取,是安全评估人员常用的开源命令行工具。
围绕「检测 → 利用 → 枚举 → 提取」完整链路,sqlmap 将复杂的手工注入流程自动化,适合授权渗透测试与安全研究场景。
对目标 URL、POST 数据、Cookie 等参数进行系统化测试,识别可用的 SQL 注入点并给出技术类型判断。
识别 MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite 等后端数据库类型与版本特征。
枚举数据库、表、列,提取用户权限与密码哈希,并可按需 dump 指定表或全库数据。
在已确认注入的前提下执行用户自定义语句,满足取证、验证与深度分析需求。
在条件允许时读取目标主机特定文件,辅助进一步确认环境配置与敏感信息暴露面。
提供 --wizard 简化入门流程,并支持 --batch 无人值守默认策略,便于批量资产评估。
默认技术组合为 BEUSTQ,可按环境调整 level / risk,平衡覆盖面与请求成本。
通过真/假条件导致页面差异推断数据,适用于无回显但仍可观察响应差异的场景。
利用数据库报错回显提取信息,速度快,对开启详细错误信息的应用尤为有效。
通过 UNION SELECT 拼接查询结果,适合可控制查询列数且页面回显可控的情况。
在支持多语句执行的后端上串联额外 SQL,扩展写入、延时与管理类操作能力。
基于响应时延推断真假,即使无内容差异也可缓慢提取数据,适合严格过滤环境。
针对内联查询场景进行探测,补充其他技术难以覆盖的注入路径。
一旦确认注入,可按需获取 banner、当前用户、当前库、权限、哈希,并导出指定范围数据。
| 能力 | 常用参数 | 说明 |
|---|---|---|
| 数据库列表 | --dbs | 枚举可见数据库名称 |
| 表结构 | --tables / --columns | 列出表与列信息 |
| 数据导出 | --dump / --dump-all | 导出指定或全部表记录 |
| 用户与哈希 | --passwords / --current-user | 获取会话用户与密码哈希 |
| 完整拉取 | -a / --all | 尽可能检索全部可获取信息 |
以下流程帮助你在授权环境中快速完成一次基础检测与库名枚举。
确保已安装 Python3 与依赖,将 sqlmap 置于可执行路径,并确认仅对授权目标测试。
使用 -u 提供带参数的地址,例如含查询字符串的页面;必要时补充 --data 或 Cookie。
先以默认 level/risk 探测,确认注入技术后再提高检测强度,避免对业务造成过度压力。
使用 --dbs、-D、-T、--dump 逐步缩小范围,按最小必要原则提取数据。
在合同约定范围内验证 Web 应用是否存在可利用的 SQL 注入,并评估数据暴露风险。
在本地靶场复现注入技术差异,理解盲注、报错注入与联合查询的行为特征。
修复参数化查询或 WAF 规则后,用相同用例复查,确认漏洞已关闭且无回归。
sqlmap 仅应用于经书面授权的安全测试、教学演示与研究。未经许可对第三方系统发起扫描或数据提取可能违法。使用者须遵守所在地法律法规;开发者与本站不对滥用行为承担责任。请始终遵循最小权限、最小数据、可追溯审计原则。
sqlmap 是一款开源的自动 SQL 注入工具。它帮助安全人员自动探测 Web 参数是否存在注入,并在确认后完成数据库指纹识别、结构枚举、数据导出甚至有限的操作系统交互,显著降低手工构造 payload 的时间成本。
在命令行执行 python3 sqlmap.py -h 或 sqlmap -h。若能看到用法说明与版本信息,说明运行环境正常。建议再执行 --version 核对版本,并在本地靶场做一次连通性测试。
常见支持包括 MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite、IBM DB2、MariaDB 等。实际可用能力取决于注入类型、权限与目标过滤策略;可用 --dbms 强制指定以减少探测开销。
level(1-5)控制测试深度与覆盖的参数位置,risk(1-3)控制更危险或耗时的 payload。初次评估建议从默认值开始;确认低危注入存在后再逐步提高,避免对生产环境造成过量请求或潜在影响。
常见原因包括 WAF 拦截、参数未真正进入 SQL、需要登录态、使用了错误的请求方法,或目标仅适合时间盲注。可尝试补充 Cookie、调整 --technique、启用代理/随机 UA,并确认目标在授权范围内可稳定访问。
默认应按库、表、列逐步缩小范围:先 --dbs,再用 -D、-T、-C 指定对象后执行 --dump。只有在明确需要且授权允许时才使用 --dump-all,并做好数据保管与销毁流程。
优势在于自动化枚举、会话状态管理、多技术并行尝试、对常见 DBMS 的适配脚本,以及可重复的批量参数。手工注入仍适合精细绕过与逻辑漏洞分析;二者结合通常效果最佳。
必须获得明确授权,限定测试时间窗口、目标地址与数据范围;保留测试日志;禁止将导出数据用于非授权目的。对生产系统应评估业务影响,优先在预发或镜像环境验证高 risk 选项。
官方主流程以命令行为主,同时提供 --wizard 引导式交互降低入门门槛,以及 sqlmapapi 以 REST-JSON 方式集成到其他平台。本站提供的是工具本体获取通道,不包含无关移动应用。