摘要:谁能想到,为了方便 SSL 证书续期的特定路径,竟然成了穿透 Cloudflare WAF 防护的隐形通道?
一、 意外的发现:消失的"门卫"
通常情况下,当我们为网站开启 Cloudflare WAF(Web 应用防火墙)并设置"拒绝所有非特定 IP 访问"时,理论上源站应该是稳如泰山的。
然而,网络安全研究团队FearsOff在最近的一次安全审计中发现了一个惊人的逻辑盲点:只要在请求的 URL 路径中包含/.well-known/acme-challenge/,Cloudflare 的 WAF 规则就会被直接跳过,请求会毫无阻拦地送达源站。
这意味着,黑客只需要在攻击载荷前加上这段路径,就能无视你设置的所有地理拦截、IP 黑名单或高级过滤规则。
二、 核心原理:被误用的"特权通道"
这个漏洞的根源在于 Cloudflare 对ACME 协议(自动证书管理环境)的处理逻辑。
为了让用户能够顺利通过 HTTP-01 验证签发 SSL 证书,Cloudflare 在系统底层设置了一条"绿色通道":
-
优先级最高:凡是匹配 ACME 验证路径的流量,其转发逻辑被硬编码在用户自定义 WAF 规则执行之前。
-
默认放行:系统假设这些流量是来自证书颁发机构(如 Let\'s Encrypt)的机器人,因此给予了"免检"待遇。
漏洞在于:Cloudflare 并没有校验发起请求的是否真的是证书颁发机构,也没有校验该路径下是否真的存在验证文件。黑客可以利用这一特权路径作为跳板,去探测和攻击源站上的其他敏感接口。
三、 深度危害:从路径穿越到"全盘脱裤"
研究人员演示了如何利用这个"免检通道"配合源站自身的弱点进行攻击:
- Spring Boot 环境:利用路径穿越(如
..;/),黑客可以从 ACME 路径"跳"到系统的敏感端点。
> **攻击示例:**`GET /.well-known/acme-challenge/..;/actuator/env`{index-in-node="6" path-to-node="16,0,1,0"}结果:直接绕过 WAF 拿到数据库密码和 API Key。
- PHP 路由漏洞:许多 PHP 应用通过
index.php统一分发请求。通过该路径,黑客可以绕过 WAF 对非法字符的过滤,直接进行 LFI(本地文件包含)攻击,读取服务器的/etc/passwd。
四、 幕后故事:为何漏洞去年修复,现在才公开?
细心的读者可能会发现,该漏洞在2025 年 10 月 27 日已经完成了全球修复,但详细的技术报告直到2026 年 1 月 19 日才正式公开。
这正是安全圈**"负责任披露(Responsible Disclosure)"**的典型案例:
-
10 月初:研究人员向 Cloudflare 秘密报告漏洞。
-
10 月底:Cloudflare 完成补丁开发并在全球边缘节点部署。
-
后续 3 个月:双方进入"观察期"。Cloudflare 需要确认修复方案不会影响全球数亿张证书的正常续期,而研究人员则配合验证补丁的严密性。
-
现在:在确保全球用户已安全、补丁已稳固后,双方才选定时间共同发布报告,复盘这一经典案例。
五、 给运维和安全人员的建议
虽然平台层面的漏洞已修补,但这次事件给我们留下了深刻教训:
-
纵深防御:永远不要把安全全部托付给第一道防线。你的源站防火墙(如 iptables 或 UFW)应配置为仅允许 Cloudflare 的 IP 段访问。
-
最小化特权:对类似
/.well-known/这种特殊路径,源站层面也应保持警惕,避免在路由配置中给予过高权限。 -
关注底层逻辑:安全往往在业务逻辑的"便捷之处"崩塌。
想了解更多?如果你对 Linux 自动化运维、服务器加固或网络安全实战感兴趣,欢迎关注LeisureLinux公众号同名 B 站频道。我们会针对此类 WAF 绕过漏洞制作专门的演示与防范视频,带你从底层理解安全。
参考来源:https://fearsoff.org/research/cloudflare-acme
互动话题:你认为 CDN 厂商是否应该为了"业务方便"而默认设置这种全局白名单?欢迎在评论区分享你的看法!