跳到主要内容
sqlmap logo sqlmap官方下载
🔐 Automatic SQL Injection Tool

sqlmap自动注入工具下载 检测并利用SQL注入漏洞的渗透测试利器

sqlmap 专注于自动发现并利用 Web 应用中的 SQL 注入点,完成后端数据库指纹识别、结构枚举与数据提取,是安全评估人员常用的开源命令行工具。

✅ 开源免费 🧠 多注入技术 🗄️ 主流 DBMS 支持

🛠️ 核心能力概览

围绕「检测 → 利用 → 枚举 → 提取」完整链路,sqlmap 将复杂的手工注入流程自动化,适合授权渗透测试与安全研究场景。

🎯

自动注入检测

对目标 URL、POST 数据、Cookie 等参数进行系统化测试,识别可用的 SQL 注入点并给出技术类型判断。

🧬

DBMS 指纹识别

识别 MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite 等后端数据库类型与版本特征。

📚

结构与数据枚举

枚举数据库、表、列,提取用户权限与密码哈希,并可按需 dump 指定表或全库数据。

🧾

自定义 SQL 执行

在已确认注入的前提下执行用户自定义语句,满足取证、验证与深度分析需求。

📂

文件系统交互

在条件允许时读取目标主机特定文件,辅助进一步确认环境配置与敏感信息暴露面。

🧙

向导与批处理

提供 --wizard 简化入门流程,并支持 --batch 无人值守默认策略,便于批量资产评估。

⚙️ 支持的注入技术

默认技术组合为 BEUSTQ,可按环境调整 level / risk,平衡覆盖面与请求成本。

B · Boolean-based blind

通过真/假条件导致页面差异推断数据,适用于无回显但仍可观察响应差异的场景。

E · Error-based

利用数据库报错回显提取信息,速度快,对开启详细错误信息的应用尤为有效。

U · Union query

通过 UNION SELECT 拼接查询结果,适合可控制查询列数且页面回显可控的情况。

S · Stacked queries

在支持多语句执行的后端上串联额外 SQL,扩展写入、延时与管理类操作能力。

T · Time-based blind

基于响应时延推断真假,即使无内容差异也可缓慢提取数据,适合严格过滤环境。

Q · Inline queries

针对内联查询场景进行探测,补充其他技术难以覆盖的注入路径。

🗄️ 枚举与管理能力

一旦确认注入,可按需获取 banner、当前用户、当前库、权限、哈希,并导出指定范围数据。

能力常用参数说明
数据库列表--dbs枚举可见数据库名称
表结构--tables / --columns列出表与列信息
数据导出--dump / --dump-all导出指定或全部表记录
用户与哈希--passwords / --current-user获取会话用户与密码哈希
完整拉取-a / --all尽可能检索全部可获取信息

📘 快速使用指南

以下流程帮助你在授权环境中快速完成一次基础检测与库名枚举。

准备运行环境

确保已安装 Python3 与依赖,将 sqlmap 置于可执行路径,并确认仅对授权目标测试。

指定目标 URL

使用 -u 提供带参数的地址,例如含查询字符串的页面;必要时补充 --data 或 Cookie。

启动检测

先以默认 level/risk 探测,确认注入技术后再提高检测强度,避免对业务造成过度压力。

枚举与导出

使用 --dbs-D-T--dump 逐步缩小范围,按最小必要原则提取数据。

🧩 适用场景

授权渗透测试

在合同约定范围内验证 Web 应用是否存在可利用的 SQL 注入,并评估数据暴露风险。

安全研究与教学

在本地靶场复现注入技术差异,理解盲注、报错注入与联合查询的行为特征。

整改验证

修复参数化查询或 WAF 规则后,用相同用例复查,确认漏洞已关闭且无回归。

⚖️ 合法使用声明

sqlmap 仅应用于经书面授权的安全测试、教学演示与研究。未经许可对第三方系统发起扫描或数据提取可能违法。使用者须遵守所在地法律法规;开发者与本站不对滥用行为承担责任。请始终遵循最小权限、最小数据、可追溯审计原则。

❓ 常见问题 FAQ

1. sqlmap 是什么?它解决什么问题?

sqlmap 是一款开源的自动 SQL 注入工具。它帮助安全人员自动探测 Web 参数是否存在注入,并在确认后完成数据库指纹识别、结构枚举、数据导出甚至有限的操作系统交互,显著降低手工构造 payload 的时间成本。

2. 下载后如何快速验证安装是否成功?

在命令行执行 python3 sqlmap.py -hsqlmap -h。若能看到用法说明与版本信息,说明运行环境正常。建议再执行 --version 核对版本,并在本地靶场做一次连通性测试。

3. 支持哪些后端数据库?

常见支持包括 MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite、IBM DB2、MariaDB 等。实际可用能力取决于注入类型、权限与目标过滤策略;可用 --dbms 强制指定以减少探测开销。

4. level 与 risk 参数如何选择?

level(1-5)控制测试深度与覆盖的参数位置,risk(1-3)控制更危险或耗时的 payload。初次评估建议从默认值开始;确认低危注入存在后再逐步提高,避免对生产环境造成过量请求或潜在影响。

5. 为什么检测很慢或没有结果?

常见原因包括 WAF 拦截、参数未真正进入 SQL、需要登录态、使用了错误的请求方法,或目标仅适合时间盲注。可尝试补充 Cookie、调整 --technique、启用代理/随机 UA,并确认目标在授权范围内可稳定访问。

6. --dump 会导出全部数据吗?如何控制范围?

默认应按库、表、列逐步缩小范围:先 --dbs,再用 -D-T-C 指定对象后执行 --dump。只有在明确需要且授权允许时才使用 --dump-all,并做好数据保管与销毁流程。

7. sqlmap 与手工注入相比有哪些优势?

优势在于自动化枚举、会话状态管理、多技术并行尝试、对常见 DBMS 的适配脚本,以及可重复的批量参数。手工注入仍适合精细绕过与逻辑漏洞分析;二者结合通常效果最佳。

8. 使用 sqlmap 有哪些法律与合规注意点?

必须获得明确授权,限定测试时间窗口、目标地址与数据范围;保留测试日志;禁止将导出数据用于非授权目的。对生产系统应评估业务影响,优先在预发或镜像环境验证高 risk 选项。

9. 是否提供图形界面?命令行是否必须?

官方主流程以命令行为主,同时提供 --wizard 引导式交互降低入门门槛,以及 sqlmapapi 以 REST-JSON 方式集成到其他平台。本站提供的是工具本体获取通道,不包含无关移动应用。

准备好在授权环境中开始评估了吗?

获取 sqlmap,体验从注入检测到库表枚举的自动化流程。

立即下载