WAF 原理与绕过思路

理解 WAF 如何检测 Web 攻击,为什么会出现误报与漏报,以及安全人员如何从防御视角配置、调优和审计 WAF。

写在前面:合法学习边界

本文讨论 WAF 原理和绕过思路,目的是帮助初学者理解防护机制,而不是提供攻击真实网站的教程。任何 WAF 绕过测试都必须在授权环境中进行。

一、WAF 是什么

WAF(Web Application Firewall)是位于应用前面的防护层,用来检查 HTTP/HTTPS 请求和响应,识别 SQL 注入、XSS、文件包含、命令注入等攻击模式。

WAF 通常做三件事:

1
2
3
检查请求
匹配规则
拦截或告警

二、WAF 的工作方式

1. 规则匹配

WAF 常用规则和特征识别攻击。例如检测:

1
2
3
4
<script>
' OR 1=1
union select
../../etc/passwd

2. 解码后匹配

请求参数在进入规则引擎前通常会解码。例如 URL 编码、HTML 编码、Base64 等。

3. 上下文判断

成熟 WAF 会判断参数位置,例如 URL、Cookie、Body、Header。

三、为什么 WAF 会误报

误报的常见原因:

1
2
3
4
规则过宽
业务内容像攻击特征
参数中包含特殊字符
正常 HTML 内容被识别成 XSS

例如富文本内容里天然会有 <&

四、为什么 WAF 会漏报

漏报的常见原因:

1
2
3
4
5
攻击发生在业务逻辑层
请求经过编码或分块
WAF 没检查 Body
规则未覆盖该场景
攻击使用正常协议行为

五、防御视角的调优建议

1
2
3
4
5
先开启监控,再逐步启用拦截
对正常业务内容建立白名单
减少规则泛化
定期查看误报和漏报
结合业务日志判断

六、报告中如何描述 WAF 问题

好的报告应说明:

1
2
3
4
5
触发规则
绕过的请求特征
影响范围
是否造成真实业务风险
建议如何优化

只说“WAF 可被绕过”但没有证据,是没有价值的结论。

七、小结

WAF 是防护,不是银弹。它最适合做流量过滤和第一道防线,真正有效还要结合业务鉴权、输入处理、日志审计和持续调优。