4分钟阅读
前言
曾几何时,Web应用防火墙(WAF)被视作保护Web应用的终极卫士。
然而到了2025年,攻击者变得更加狡猾,WAF 虽然仍是重要防线,却已不再是坚不可摧的屏障。无论是渗透测试者、红队成员还是防守人员,了解 WAF 绕过技术对保护组织应用或准确模拟真实威胁至关重要。
WAF为何不再绝对安全?
现今大多数企业都将WAF作为第一道防线部署,但如果完全依赖它,只会产生“虚假的安全感”。
现代攻击者不仅了解 WAF 的工作原理,更知道如何绕过它们。
WAF工作原理速览
WAF通过以下方式过滤、监控并阻断往来于Web应用的HTTP/HTTPS流量:
- 基于签名的检测(已知攻击模式)
- 基于异常的检测(异常流量模式)
- 基于规则的策略(自定义规则)
但为了避免误报,WAF 通常采用较为宽松的配置策略,而这恰恰成为了攻击者的突破口。
2025年依然有效的七种绕过技术
1. Payload混淆技术
攻击者在不改变功能的前提下变换恶意代码的"样貌":
- 如将
<script>
替换为<scr\ipt>
- 使用大小写不敏感关键字(
UNION SELECT
vsunion select
) - 对输入进行URL编码或双重编码:
../
→%2e%2e%2f
或%252e%252e%252f
工具推荐:可使用Burp Suite Intruder
或WAFW00F
进行WAF规则模糊测试。
2. 非标准的HTTP方法
WAF通常只检查GET
和POST
请求,但攻击者可转而使用:
PUT
、HEAD
、OPTIONS
、TRACE
等方法- 将
POST
改为GET
并将某些参数放在header (如X-Original-URL
)
例如:通过PUT
方法发送SQL注入Payload可绕过基础WAF过滤器。
3. 头部注入
将恶意Payload藏在HTTP头中:
- 常用目标包括
User-Agent
、X-Forwarded-For
、Referer
等 - 如通过
User-Agent
注入恶意代码以触发SSRF或基于日志的RCE
4. JSON/XML格式攻击
许多WAF主要检查URL参数和表单数据,但很少深入解析:
- JSON格式:
{ "input": "1 OR 1=1" }
- 例如:一些WAF对深层嵌套JSON或复杂编码的XML检查不够全面
5. 编码变种
转换编码方式欺骗 WAF :
- Base64编码
- Unicode和UTF-7编码
- 十六进制字符串混淆
- 如将
alert(1)
替换为\u0061\u006c\u0065\u0072\u0074(1)
可绕过某些XSS过滤器
6. 速率限制与时间差攻击
假设 WAF 基于模式进行拦截,但如果:
- 缓慢逐字节发送相同Payload
- 在请求间设置随机时间间隔
即可利用这种延迟逻辑进行绕过(工具:Slowloris
或SlowHTTPTest
)。
7. Payload分片
将恶意Payload切分成多个部分:
- 使用分块传输编码发送片段
- 适用于仅检查完整Payload的WAF
例如:攻击者通过多次请求将<script>
分拆为<scr
和ipt>
。
真实案例:
2023年末,攻击者成功利用 WAF 未能检测Base64编码的SSRF Payload 的漏洞。
该Payload被嵌入Referer
头,通过多层传递,最终从内部 AWS 服务器泄漏云元数据,这一绕过技术在2024年被众多红队采用,直到2025年依然活跃。
防守者最佳实践
- 全流量格式检查:应包括JSON、XML、多部分和标头数据
- 服务器端输入验证:不能仅依赖WAF
- 定期更新WAF规则:结合威胁情报源做到定期更新规则
- 采用多层防御:结合RASP(运行时应用自保护)和EDR(终端检测与响应)
- 异常检测优先:不仅仅依赖签名检测
关键启示
- WAF很有用,但并非完美无缺,攻击者的变化速度远超签名更新
- 混淆、编码和替代成为主流绕过策略
- 防守者需要采用分层安全方法并定期测试WAF实效性
- 渗透测试应使用真实Payload和多样化工具模拟攻击行为
- 持续学习和模拟 依然是在2025年保持领先的关键
网络安全既是挑战,也是永不枯竭的知识海洋,保持警惕,保持好奇!🛡️