当前位置: 首页 > article >正文

【SQLI】sqlmap Tamper 脚本分类总结

sqlmap Tamper 脚本分类总结

  • 1. 编码与转义
  • 2. 空白符混淆
  • 3. 关键字混淆与变形
  • 4. 特定数据库绕过
  • 5. 时间延迟绕过
  • 6. 字符串拼接与分割
  • 7. 注释干扰
  • 8. 特殊符号替换
  • 9. 特定协议/头操作
  • 10. 组合绕过技术
  • 11. 特定框架/WAF 绕过
  • 12. 非常规绕过
  • 使用场景示例
  • 完整 Tamper 列表命令

sqlmap Tamper 脚本的完整分类总结,按绕过技术类型和功能划分为更细致的类别:


1. 编码与转义

  • base64encode.py
    将 Payload 编码为 Base64 格式,绕过简单字符串过滤。
  • charencode.py
    对特殊字符进行 URL 编码(如 %20 代替空格)。
  • chardoubleencode.py
    双重 URL 编码(如 %2520 代替空格)。
  • charunicodeescape.py
    使用 Unicode 转义(如 \u0020 代替空格)。
  • unmagicquotes.py
    绕过 magic_quotes 过滤,用 %bf%27 替代单引号。
  • apostrophenullencode.py
    将单引号替换为 %00%27,绕过空字节截断过滤。

2. 空白符混淆

  • space2comment.py
    用注释符 /**/ 替换空格。
  • space2plus.py
    + 替换空格。
  • space2hash.py
    %23%0A# 换行符)替换空格。
  • space2mssqlblank.py
    用随机空白符(适用于 MSSQL)。
  • space2mysqldash.py
    --%0A 替换空格(适用于 MySQL)。
  • space2randomblank.py
    用随机空白符(如 %09, %0A, %0C)替换空格。

3. 关键字混淆与变形

  • randomcase.py
    随机大小写混淆(如 SeLeCt)。
  • equaltolike.py
    LIKE 替换 =
  • between.py
    BETWEEN 替换比较符(如 > 10BETWEEN 10 AND 14)。
  • modsecurityversioned.py
    在关键字前添加版本化注释(如 /*!50000SELECT*/)。
  • versionedkeywords.py
    对 MySQL 关键字添加版本注释(如 /*!50000CONCAT*/)。
  • versionedmorekeywords.py
    扩展版本注释的覆盖范围。
  • nonrecursivereplacement.py
    双重替换绕过简单过滤(如 UNIONUNIUNIONON)。
  • symboliclogical.py
    && 替代 AND|| 替代 OR

4. 特定数据库绕过

MySQL

  • concat2concatws.py
    CONCAT_WS() 替代 CONCAT()
  • greatest.py
    GREATEST() 绕过 > 过滤。
  • sleep2getlock.py
    GET_LOCK() 替代 SLEEP() 时间盲注。
  • halfversionedmorekeywords.py
    对部分关键字添加版本注释。

MSSQL

  • mssqlconv.py
    CONVERT() 函数混淆 Payload。
  • mssqlcharunicodeencode.py
    对 MSSQL 使用 Unicode 编码。
  • sp_password.py
    在 Payload 末尾添加 sp_password 混淆日志。

Oracle

  • oraclechr.py
    CHR() 函数编码字符串(如 CHR(65)||CHR(66)AB)。

5. 时间延迟绕过

  • delayedsleep.py
    在时间盲注中插入随机延迟。
  • startsleep.py
    在 Payload 开头插入 SLEEP() 绕过时间检测。

6. 字符串拼接与分割

  • charunicodeescape.py
    将字符串转换为 Unicode 转义序列。
  • concat2concatws.py
    使用 CONCAT_WS() 替代 CONCAT()(MySQL)。
  • commalesslimit.py
    OFFSET 替代 LIMIT X, Y 中的逗号(如 LIMIT 1 OFFSET 0)。
  • commalessmid.py
    FROM 替代 MID() 中的逗号(如 MID(VERSION() FROM 1))。

7. 注释干扰

  • commentbeforeparentheses.py
    在括号前插入注释(如 (/*!50000SELECT*/)。
  • randomcomments.py
    在 Payload 中随机插入 // 注释。
  • bluecoat.py
    在关键字前添加随机注释(如 SEL/*RANDOM*/ECT)。

8. 特殊符号替换

  • percentage.py
    在字符间插入 %(如 SELECTS%E%L%E%C%T)。
  • hex2char.py
    将十六进制值转换为 CHAR() 函数(如 0x50CHAR(80))。
  • dollarpercent.py
    在 Payload 中随机插入 $%

9. 特定协议/头操作

  • xforwardedfor.py
    添加 X-Forwarded-For 头绕过 IP 限制。
  • hpp.py
    利用 HTTP 参数污染(重复参数)绕过过滤。
  • uagentinject.py
    User-Agent 头中注入 Payload。

10. 组合绕过技术

  • multiplespaces.py
    插入多个空格混淆语法。
  • overlongutf8.py
    使用超长 UTF-8 编码绕过过滤。
  • htmlencode.py
    对 Payload 进行 HTML 实体编码(如 <&lt;)。

11. 特定框架/WAF 绕过

  • tamper.py
    通用模板,可自定义绕过规则。
  • modsecurity.py
    针对 ModSecurity WAF 的绕过。
  • apostrophemask.py
    用 UTF-8 全角字符替代单引号(如 %27)。
  • svnhexdump.py
    将 Payload 转换为 SVN 日志格式的十六进制转储。

12. 非常规绕过

  • 0eunion.py
    UNION 转换为 0eUNION,利用科学计数法绕过。
  • base64dummy.py
    在 Payload 末尾填充伪 Base64 字符。
  • zeroblob.py
    ZEROBLOB() 函数混淆 Payload(SQLite)。

使用场景示例

  • 绕过空格过滤:space2comment + randomcase
  • 混淆关键字:versionedkeywords + randomcomments
  • 编码绕过:base64encode + charencode
  • 时间盲注绕过:delayedsleep + sleep2getlock

完整 Tamper 列表命令

sqlmap --list-tampers

通过灵活组合 Tamper 脚本,可绕过绝大多数 WAF/IDS 规则及特定字符过滤机制。


http://www.kler.cn/a/561033.html

相关文章:

  • LangChain教程 - RAG - PDF摘要
  • Elasticsearch中的CURL请求详解
  • Java——单例类设计模式
  • 【栈与队列】N叉树的层序遍历 二叉树的锯齿形层序遍历
  • DeepSeek在MATLAB上的部署与应用
  • 地铁站内导航系统:基于蓝牙Beacon与AR技术的动态路径规划技术深度剖析
  • C#语音识别与播报开发指南
  • LabVIEW C编译支持工具库CCompileSupp.llb
  • 本地开发用ASP.NET Core Web API项目创建及测试
  • 【学习笔记】Cadence电子设计全流程(三)Capture CIS 原理图绘制(中)
  • 【SQLI】CTF SQL注入解题步骤总结
  • hbase线上region不一致问题相关数据修复
  • 个人笔记三:微机
  • 线性模型 - 支持向量机(参数学习)
  • 基于大语言模型的推荐系统(1)
  • 智慧后勤的消防管理:豪越科技为安全护航
  • 安当ASP:中小企业低成本Radius认证服务器解决方案
  • 数据驱动未来!天合光能与永洪科技携手开启数字化新篇章
  • 机器学习基础入门——机器学习库介绍(NumPy、pandas、Matplotlib)
  • vue3学习3-route