sqlmap是自动化SQL注入工具,用于合法授权下的渗透测试。通过Git克隆安装后,使用python3 sqlmap.py运行,支持-u指定目标URL、--dbs枚举数据库、--current-db获取当前库、--users列出用户、--passwords尝试获取密码哈希、--tables查看表、--columns查字段、--dump导出数据,配合--batch实现非交互模式。仅限测试用途,须在授权范围内操作,禁止用于未授权系统或生产环境,推荐在DVWA等靶场练习,遵守网络安全法规,确保技术正当使用。

sqlmap 是一款开源的自动化 SQL 注入工具,常用于检测和利用 Web 应用中的 SQL 注入漏洞。在合法授权的渗透测试中,它可以高效识别数据库层的安全问题。以下是如何在 Linux 系统上使用 sqlmap 进行 SQL 注入检测(仅限测试用途)的操作指南。
安装 sqlmap
sqlmap 基于 Python,大多数 Linux 发行版都支持直接运行。推荐通过 Git 克隆官方仓库:
- sudo apt update
- sudo apt install git python3 python3-pip -y
- git clone https://github.com/sqlmapproject/sqlmap.git
- cd sqlmap
无需编译,直接运行 python3 sqlmap.py 即可使用。
基础检测流程
假设你有一个测试目标 URL,例如:
http://testphp.vulnweb.com/artists.php?artist=1
这是典型的带参数的动态页面,适合进行 SQL 注入检测。
执行基本扫描:
python3 sqlmap.py -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs说明:
-u 指定目标 URL
--dbs 用于枚举数据库,若存在注入点,sqlmap 会自动尝试利用并列出可用数据库
常见测试选项
根据测试需求,可添加以下参数增强检测能力:
- --current-db:获取当前数据库名称
- --users:列出数据库用户
- --passwords:尝试获取用户密码哈希(适用于有权限场景)
- --tables -D 数据库名:列出指定数据库的表
- --columns -T 表名 -D 数据库名:获取某表的字段信息
- --dump -D 数据库名 -T 表名:导出表数据(仅限测试环境)
- --batch:非交互模式,使用默认选项自动处理提示,适合快速测试
注意事项与安全规范
使用 sqlmap 必须遵守法律和道德准则:
- 仅在获得明确授权的情况下对目标系统进行测试
- 避免在生产环境或未授权网站上运行,否则可能触犯《网络安全法》等相关法规
- 不要用于窃取、篡改或破坏数据
- 建议在本地搭建的靶场环境练习,如 DVWA、WebGoat、SQLi-Labs 等
检测完成后应立即记录结果并关闭测试会话,防止误操作造成影响。
基本上就这些。掌握 sqlmap 的基本用法有助于理解 SQL 注入原理,提升 Web 安全防护意识。不复杂但容易忽略的是授权和使用边界——技术本身无罪,关键在于用途是否正当。









