Bypass WAF And Defense
字数 917 2025-08-15 21:31:23

WAF绕过与防御技术详解

一、WAF基础概念

WAF (Web Application Firewall) 是一种专门为Web应用提供保护的安全产品,通过执行一系列针对HTTP/HTTPS的安全策略来防御攻击。

二、常见上传防御策略

  1. 客户端校验

    • 通常仅校验文件后缀名
  2. 服务端校验

    • 文件头Content-Type字段校验(如image/gif)
    • 文件内容头校验(如GIF89a)
    • 后缀名黑名单校验
    • 后缀名白名单校验
    • 自定义正则校验
    • WAF设备校验(根据具体产品而定)

三、WAF绕过技术

3.1 通用绕过方法

方法1:文件包含绕过

  1. 上传一个内容为木马的txt后缀文件(因后缀名关系不检验内容)
  2. 上传一个.php文件,内容为:
    <?php Include("上传的txt文件路径");?>
    
  3. 该php文件会引用txt文件内容,从而绕过校验

方法2:压缩文件绕过

  1. 上传文件shell.php
  2. 上传文件test.txt内容为:
    <?php phpinfo();?>
    
  3. 将test.txt添加成压缩文件test.rar
  4. 访问shell.php即可执行php代码
    • 支持修改压缩文件后缀为zip、phar、rar等

3.2 特定WAF绕过

WTS-WAF绕过

Content-Disposition: form-data; name="up_picture"; filename="xss.php"

百度云WAF绕过

Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"
  • 对文件名大小写不敏感,"Php"或"PHP"可绕过
  • 可合成图片马用Xise连接

阿里云WAF绕过

原始请求:

Content-Disposition: form-data; name="img_crop_file"; filename="1.jpg .Php"
Content-Type: image/jpeg

绕过方法:

Content-Disposition: form-data; name="img_crop_file"; filename="1.php"
  • 删除Content-Type: image/jpeg即可绕过

安全狗绕过(旧版)

原始请求:

Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"
Content-Type: image/png

绕过方法:

Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png C.php"
  • 删掉Content-Type: image/jpeg只留下c
  • 将.php加在c后面
  • 注意双引号要跟着c.php"

云锁绕过

Content-Disposition: form-data; name="up_picture"; filename="xss.php"

四、防御措施

4.1 目录权限设置

  • 将上传目录设为不可执行
  • 确保web容器无法解析该目录下的文件

4.2 文件类型校验

  • 结合MIME-Type、后缀检查等多种方式
  • 推荐使用白名单机制

4.3 文件名随机化

  • 使用随机数改写上传文件名
  • 即使上传了恶意文件,攻击者也无法直接访问

五、研究建议

  1. 深入研究HTTP协议和PHP/Tomcat对HTTP协议的实现
  2. 分析MySQL词法解析机制
  3. 掌握Fuzz测试方法
  4. 理解正则表达式原理和基本漏洞原理

通过深入研究这些领域,不仅能提升WAF防御能力,也能增强自身的安全技术水平。

WAF绕过与防御技术详解 一、WAF基础概念 WAF (Web Application Firewall) 是一种专门为Web应用提供保护的安全产品,通过执行一系列针对HTTP/HTTPS的安全策略来防御攻击。 二、常见上传防御策略 客户端校验 : 通常仅校验文件后缀名 服务端校验 : 文件头Content-Type字段校验(如image/gif) 文件内容头校验(如GIF89a) 后缀名黑名单校验 后缀名白名单校验 自定义正则校验 WAF设备校验(根据具体产品而定) 三、WAF绕过技术 3.1 通用绕过方法 方法1:文件包含绕过 上传一个内容为木马的txt后缀文件(因后缀名关系不检验内容) 上传一个.php文件,内容为: 该php文件会引用txt文件内容,从而绕过校验 方法2:压缩文件绕过 上传文件shell.php 上传文件test.txt内容为: 将test.txt添加成压缩文件test.rar 访问shell.php即可执行php代码 支持修改压缩文件后缀为zip、phar、rar等 3.2 特定WAF绕过 WTS-WAF绕过 百度云WAF绕过 对文件名大小写不敏感,"Php"或"PHP"可绕过 可合成图片马用Xise连接 阿里云WAF绕过 原始请求: 绕过方法: 删除Content-Type: image/jpeg即可绕过 安全狗绕过(旧版) 原始请求: 绕过方法: 删掉Content-Type: image/jpeg只留下c 将.php加在c后面 注意双引号要跟着c.php" 云锁绕过 四、防御措施 4.1 目录权限设置 将上传目录设为不可执行 确保web容器无法解析该目录下的文件 4.2 文件类型校验 结合MIME-Type、后缀检查等多种方式 推荐使用白名单机制 4.3 文件名随机化 使用随机数改写上传文件名 即使上传了恶意文件,攻击者也无法直接访问 五、研究建议 深入研究HTTP协议和PHP/Tomcat对HTTP协议的实现 分析MySQL词法解析机制 掌握Fuzz测试方法 理解正则表达式原理和基本漏洞原理 通过深入研究这些领域,不仅能提升WAF防御能力,也能增强自身的安全技术水平。