sqlmap -tamper的使用
实际使用中,大部分上线的网站都有waf(原理是基于正则表达式过滤非法参数),而在sqlmap中 -tamper参数可以进行混淆(也可以自己加入)
常用分类
一、空格绕过类
| 脚本名 | 作用 | 适用场景 |
|---|
| space2comment.py | 空格替换为 /**/ | 空格被过滤,通用绕过 |
| space2dash.py | 空格替换为 --%0A | MySQL 空格过滤 |
| space2hash.py | 空格替换为 #%0A | MySQL 空格过滤 |
| space2plus.py | 空格替换为 + | GET 参数空格过滤 |
| space2randomblank.py | 空格替换为随机空白符 | 正则拦截固定空格替换 |
| space2mssqlblank.py | 空格替换为 MSSQL 特殊空白符 | SQL Server 空格过滤 |
| space2mysqlblank.py | 空格替换为 MySQL 特殊空白符 | MySQL 严格空格过滤 |
| multiplespaces.py | 单个空格变多个空格 | 简单空格过滤规则 |
二、关键字混淆绕过类
| 脚本名 | 作用 | 适用场景 |
|---|
| randomcase.py | 关键字随机大小写 | 简单正则关键字拦截 |
| lowercase.py | 关键字全小写 | 拦截大写关键字 |
| randomcomments.py | 关键字插入随机注释 | 正则匹配完整关键字 |
| versionedkeywords.py | 关键字加 MySQL 版本注释 | MySQL 关键字黑名单 |
| versionedmorekeywords.py | 多关键字增强版注释混淆 | 严格关键字过滤 |
| halfversionedmorekeywords.py | 轻量版版本注释混淆 | MySQL 轻量 WAF |
| nonrecursivereplacement.py | 关键字双重替换 | 只做单次替换的 WAF |
三、编码 & 字符替换类
| 脚本名 | 作用 | 适用场景 |
|---|
| charencode.py | 单次 URL 编码 | 基础字符过滤 |
| chardoubleencode.py | 双重 URL 编码 | WAF 只做一次解码 |
| charunicodeencode.py | Unicode 编码 | 支持 Unicode 的 WAF |
| base64encode.py | 整个 Payload Base64 编码 | 后端支持 base64 解码 |
| htmlencode.py | HTML 实体编码 | 前端 / 简单 WAF 过滤 |
| numberencode.py | 数字进行 URL 编码 | 数字被过滤 |
四、单引号 / 引号绕过类
| 脚本名 | 作用 | 适用场景 |
|---|
| apostrophemask.py | 单引号替换为 UTF-8 全角 | 单引号被拦截 |
| apostrophenullencode.py | 单引号加空字节编码 | 空字节可绕过的 WAF |
| escapequotes.py | 单引号加反斜杠转义 | 简单引号过滤 |
| unmagicquotes.py | 宽字节注入绕过 GPC | 开启 magic_quotes_gpc |
五、运算符 & 函数替换类
| 脚本名 | 作用 | 适用场景 |
|---|
| between.py | = 替换为 BETWEEN | 比较运算符被过滤 |
| equaltolike.py | = 替换为 LIKE | 等号被过滤 |
| greatest.py | > 替换为 GREATEST | 比较符号被拦截 |
| concat2concatws.py | CONCAT 替换为 CONCAT_WS | CONCAT 被拦截 |
| ifnull2ifisnull.py | IFNULL 替换为 IF (ISNULL) | IFNULL 被过滤 |
| hex2char.py | 十六进制转 CHAR 函数 | 十六进制被过滤 |
六、逗号绕过类
| 脚本名 | 作用 | 适用场景 |
|---|
| commalesslimit.py | LIMIT 逗号换 OFFSET | MySQL LIMIT 逗号过滤 |
| commalessmid.py | MID 逗号换 FROM 写法 | MySQL MID 函数逗号过滤 |
七、特定 WAF / 环境专用
| 脚本名 | 作用 | 适用场景 |
|---|
| modsecurity.py | 绕过 ModSecurity 规则 | ModSecurity WAF |
| luanginx.py | 绕过 Nginx Lua WAF | Nginx+Lua 防护 |
| bluecoat.py | 绕过 BlueCoat 代理 WAF | BlueCoat 环境 |
| securesphere.py | 绕过 SecureSphere WAF | SecureSphere 防护 |
| mysqlchar.py | 字符串转 CHAR () | MySQL 引号严格过滤 |
| unionalltounion.py | UNION ALL → UNION | UNION ALL 被拦截 |
| appendnullbyte.py | 末尾加空字节 | 简单空字节绕过 |
最常用组合
```--tamper=space2comment,randomcase,versionedkeywords,charencode