sqlmap:自动化 SQL 注入检测与利用工具
sqlmap:自动化 SQL 注入检测与利用工具
开源渗透测试工具 sqlmap 在 GitHub 上收获了 37,537 个 Star。


sqlmap 的核心定位是自动化 SQL 注入检测与利用。它能够识别 Web 应用程序中的 SQL 注入漏洞,并在确认漏洞存在后进一步接管数据库服务器。工具内置了检测引擎,覆盖多种注入场景和技术路线。
具体功能包括数据库指纹识别、数据提取、底层文件系统访问,以及通过带外连接执行操作系统命令。这些特性使 sqlmap 不仅限于漏洞发现,还能在授权测试场景下完成深度利用。
sqlmap 主要面向渗透测试人员和安全研究人员。命令行接口提供了大量开关和选项,用户可以根据测试目标灵活调整扫描策略。从简单的 GET 请求探测到复杂的多阶段攻击链,sqlmap 都能提供对应的支持。
该工具使用 Python 编写,兼容 Python 2.7 和 3.x 版本。纯 Python 实现带来了跨平台能力,可以在 Linux、macOS 和 Windows 等系统上直接运行,无需额外编译或安装依赖库。
安装过程简洁。用户可以选择下载源码压缩包解压后直接使用,也可以通过版本控制工具克隆仓库到本地。由于不依赖二进制组件,部署成本较低。
入门用法直接明了。在终端中执行以下命令可查看基础选项列表:
python sqlmap.py -h
若要查看全部可用参数和高级开关,执行:
python sqlmap.py -hh
sqlmap 的参数体系覆盖了渗透测试中的常见需求。通过命令行可以指定目标 URL、POST 数据、Cookie、用户代理等请求要素,也可以设置注入技术类型、数据库管理系统猜测、枚举的数据库对象层级等。对于需要批量测试的场景,sqlmap 支持从文件中读取多个目标地址。
在检测技术层面,sqlmap 整合了多种注入利用方式。包括基于布尔的盲注、基于时间的盲注、基于报错的注入、联合查询注入以及堆叠查询注入。工具会根据目标环境自动选择最优的检测策略,用户也可以手动指定优先使用的技术类型。
确认漏洞存在后,sqlmap 可以执行进一步操作。数据库层面支持枚举用户、表、列、数据条目;服务器层面支持读取本地文件、写入文件到目标系统;在权限允许的情况下,还可以执行操作系统命令或建立反向 shell 连接。
该项目的文档资源较为丰富。除了完整的英文使用手册,社区还维护了二十余种语言的翻译版本,涵盖阿拉伯语、中文、法语、德语、希腊语、印地语、印尼语、意大利语、日语、韩语、波斯语、波兰语、葡萄牙语、俄语、西班牙语、土耳其语、乌克兰语、越南语等。多语言文档降低了不同地区用户的上手门槛。
sqlmap 在 Web 安全领域是一款经典工具。它将手动 SQL 注入测试中重复性高的步骤自动化,使安全人员可以把更多时间投入到业务逻辑分析和复杂漏洞挖掘中。对于需要定期执行安全评估的团队来说,sqlmap 是工具链中常见的组成部分。

浙公网安备 33010602011771号