sqlmap SQL注入工具的使用方法
本文最后更新于 2025年7月14日 凌晨
1️⃣ 常用命令
1 | |
2️⃣ 进阶使用
1 | |
3️⃣ 延时注入
1 | |
4️⃣ 绕过组合示例
1 | |
5️⃣ 常用参数
1 | |
6️⃣ 高级功能
1 | |
7️⃣ 支持的数据库
| 数据库 | 参数 |
|---|---|
| MySQL | --dbms=mysql |
| PostgreSQL | --dbms=postgresql |
| MSSQL | --dbms=mssql |
| Microsoft Access | --dbms=mdb |
| Oracle | --dbms=oracle |
| SQLite | --dbms=sqlite |
| Sybase | --dbms=sybase |
| Firebird | --dbms=firebird |
| Informix | --dbms=informix |
| MaxDB | --dbms=maxdb |
| DB2 | --dbms=db2 |
| HSQLDB | --dbms=hsqldb |
| MonetDB | --dbms=monetdb |
| Teradata | --dbms=teradata |
| MariaDB | --dbms=mariadb |
8️⃣ 常用 tamper 脚本
tamper是 sqlmap 的强大绕过功能。
| 脚本 | 用途 |
|---|---|
| randomcase.py | 随机大小写 |
| space2comment.py | 空格替换为 /**/ |
| space2plus.py | 空格替换为 + |
| randomcomments.py | SQL 关键字注释分割 |
| versionedkeywords.py | 使用内联注释绕过 |
| apostrophemask.py | 引号 UTF-8 编码 |
| base64encode.py | Base64 编码 |
| space2morehash.py | 空格替换为 # 并换行 |
| apostrophenullencode.py | 单引号用双字节 Unicode 替换 |
| charencode.py | URL 编码 |
| chardoubleencode.py | 双重 URL 编码 |
| modsecurityversioned.py | MySQL 内联注释绕过 |
| unionalltounion.py | UNION ALL SELECT 转 UNION SELECT |
| bluecoat.py | 用 LIKE 替代 = |
| sp_password.py | 拼接 sp_password 绕过 |
| … | 还有很多,可参考 sqlmap 自带文档 |
📌 小结
- 生产使用时建议先用低
risk、低level探测。 - 多配合
tamper组合测试。 - 强烈建议配合 Burp Suite 抓包后使用
-r参数。 - 遵守法律法规,仅用于授权渗透测试。