【SQLI】sqlmap Tamper 脚本分类总结

embedded/2025/2/26 14:20:17/

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.ppmy.cn/embedded/167281.html

相关文章

4*A100 部署 deepseek-r1-671B

部署deepseek-r1-671B 使用 4*A100 部署 deepseek-r1-671b-1.58bit 大模型。 环境 ubuntu22.04LTScuda 12.2.0 要求 内存&#xff1a; 256GB及以上显存&#xff1a; 256GB及以上&#xff08;160G可以跑起来&#xff0c;但对于长上下文容易oom&#xff09;&#xff0c;这里…

嵌入式硬件篇---阶跃函数冲激函数

文章目录 前言一、阶跃函数&#xff08;Unit Step Function&#xff09;1.定义2.数学定义3.性质时移性质与其他信号的乘积积分与微分 4.应用场景系统测试信号建模构建复杂信号 二、冲激函数&#xff08;Dirac Delta Function&#xff09;1.定义2.性质抽样性质缩放性质与阶跃函数…

网络层(IP)

基本概念 子网和局域网是一个概念主机: 配有 IP 地址, 也能进行路由控制的设备;路由器: 即配有 IP 地址, 又能进行路由控制;节点&#xff1a; 路由器和主机的统称。 背景 两主机并不是直接连接的&#xff0c;路径选择问题&#xff1f;为什么&#xff1f; 由网络层&#xff08…

order by 布尔盲注与时间盲注

背景&#xff1a;因为order by &#xff0c;limit无法使用预编译&#xff0c;所以有可能存在sql注入漏洞 以靶场第46关为例子 用python布尔盲注 import requests from lxml import htmldef get_id_one(URL,paload):res requests.get(urlURL,paramspaload)tree html.fromst…

【形式化】Coq 中的函数式编程基础(长文)

引言 函数式编程风格建立在简单且日常的数学直觉之上&#xff1a;如果一个程序或方法没有副作用&#xff0c;那么&#xff08;忽略效率问题&#xff09;我们只需要了解它如何将输入映射到输出——也就是说&#xff0c;我们可以把它看作是计算一个数学函数的具体方法。这就是“…

ubuntu 20.04系统离线安装nfs

前提 OS&#xff1a;ubuntu 20.04 LTS 1,下载对应安装包 下载地址&#xff1a; https://ubuntu.pkgs.org/20.04/ubuntu-updates-main-amd64/nfs-common_1.3.4-2.5ubuntu3.7_amd64.deb.html 也可以采用我整理好的资源&#xff1a; https://download.csdn.net/download/m0_624…

“零信任+AI”将持续激发网络安全领域技术创新活力

根据Forrester的报告&#xff0c;到2025年&#xff0c;AI软件市场规模将从2021年的330亿美元增长到640亿美元&#xff0c;网络安全将成为AI支出增长最快的细分市场。当前&#xff0c;零信任供应侧企业已经开始尝试使用AI赋能零信任&#xff0c;未来&#xff0c;零信任与AI的结合…

【MySQL | 四、 表的基本查询(增删查改)】

目录 表的增删查改Create(创建)表数据的插入替换 Retrieve(读取)1. 全列查询2. 指定列查询3. 表达式查询4.为查询结果指定别名5.去重查询 WHERE 条件查询排序筛选分页查询 Update(更新) Delete(删除)删除整张表数据 插入查询结果聚合函数group byhaving和where的区别1. 作用范围…