Cloudflare曝零日漏洞:利用证书验证路径可绕过WAF访问任意源站

admin 2026-01-29 10:40:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档披露Cloudflare因处理ACME协议HTTP-01挑战存在逻辑缺陷,导致攻击者可利用/.well-known/acme-challenge/路径绕过WAF直接访问源站。该漏洞允许非匹配令牌请求跳过安全检查,可用于源站探测及路径穿越攻击。官方已修复此问题,确保仅对有效令牌请求禁用WAF功能。 综合评分: 93 文章分类: WEB安全,漏洞分析,漏洞预警


cover_image

Cloudflare曝零日漏洞:利用证书验证路径可绕过WAF访问任意源站

原创

开发小鸡娃 开发小鸡娃

安全随心录

2026年1月28日 22:10 上海

ACME介绍

ACME(Automatic Certificate Management Environment)是一种自动化申请、续期和管理 HTTPS 证书的标准协议。

ACME是一种通信协议(RFC 8555),它促进SSL/TLS证书的自动签发、续期和撤销。证书颁发机构(CA)为网站配置的每个证书都通过challenge 验证来证明域名所有权。

ACME的必要性

1. HTTPS 证书生命周期短

当前主流证书有效期仅为 90 天

证书过期将导致 HTTPS 服务不可用

频繁的人工证书操作不可行,自动化管理成为必需。

2. 规模化证书管理挑战

假设拥有 100 个域名,每 90 天需要更换证书:

人工成本高

易遗忘续期,风险极大

证书过期会造成重大生产事故

ACME 的本质价值:

将证书管理从“人工运维”升级为“基础设施自动化”。

ACME的认证方式

1. HTTP-01 Challenge(最常用)

流程:

CA 要求在 /.well-known/acme-challenge/xxx 路径下放置 token

ACME Client 完成操作,CA 访问指定 URL,验证 token 内容,验证通过后签发证书

适用场景:

  1. 普通网站
  2. 公网 HTTP 服务,80/443 端口可访问
  3. Cloudflare、Nginx、Apache 支持良好

局限性:

  1. 不支持泛域名证书(*.example.com)
  2. 必须公网可访问
  3. 对 WAF/反向代理敏感

2. DNS-01 Challenge

验证方式:

  1. CA 要求在 DNS 添加 TXT 记录,例如:_acme-challenge.example.com = “token”
  2. CA 查询 DNS 记录,验证通过后签发证书。

适用场景:

  1. 泛域名证书
  2. 内网服务或无 HTTP 服务
  3. 多子域名、Kubernetes、自动化环境

局限性:

  1. 需 DNS API 权限
  2. 实现复杂
  3. DNS 传播有延迟

3. TLS-ALPN-01 Challenge

验证方式:

  1. CA 连接服务器 443 端口
  2. 使用特殊 ALPN 协议 acme-tls/1
  3. 服务端返回临时证书进行验证

适用场景:

  1. 无 HTTP 服务但可控制 TLS 终止
  2. 底层部署场景

局限性:

  1. 实现复杂,调试难度高
  2. 生态支持有限

Cloudflare漏洞利用细节

漏洞原因

当请求指向 /.well-known/acme-challenge/ 目录时,即使客户配置的WAF规则明确阻止了所有其他流量,请求仍可抵达源站。这一路径普遍存在于现代网站中,用于自动化证书管理环境(ACME)协议执行SSL/TLS证书验证。其设计初衷仅限于证书颁发机构(CA)的验证机器人访问特定令牌文件,而非作为通往源站的开放通道。

Cloudflare中,漏洞根源在于Cloudflare边缘网络处理ACME HTTP-01挑战路径的逻辑缺陷。当Cloudflare为其自身管理的证书订单提供挑战令牌时,系统会禁用WAF功能以防止干扰CA验证流程。然而,当请求的令牌与Cloudflare管理的证书订单不匹配时,请求竟会完全跳过WAF评估,直接转发至客户源站。这一逻辑错误使得原本狭窄的证书验证例外情况,演变为影响所有受Cloudflare保护主机的广泛安全绕过。

利用细节

如下是被wafl拦截的正常页面Block page (normal request)

在实验中,在waf中配置了拒绝一切主机名包含cf的请求

但是通过 /.wel-known 绕过了waf的限制而直接到了源站,按照策略应该是被block的

如何获取一个Challenge Token

Cloudflare的SSL/TLS自定义主机名功能允许您管理指向您域名的第三方CNAME记录及其证书。我们添加了名为cf-well-known.fearsoff.org的自定义主机名,并明确选择了HTTP验证方式。下图展示了添加流程及最终呈现的”验证待处理”状态。

未为 cf-well-known.fearsoff.org 创建 DNS 记录,因此证书签发状态将无限期保持待处理状态。在此待处理状态下,Cloudflare 会显示验证机器人最终将请求的 HTTP‑01 网址,例如:

http://cf-well-known.fearsoff.org/.well-known/acme-challenge/yMnWOcR2yv0yW-…Jm5QksreNRDUmqKfKPTk

    可以使用/.well-known/acme-challenge/yMnWOcR2yv0yW-…Jm5QksreNRDUmqKfKPTk ,对目标域名进行探测。

漏洞危害

1、通过 ../../../的方式可以绕过waf做一些探测

2、通过http header设置的waf规则将会失效

官方修复方式

为缓解此问题,已发布代码变更。该变更仅允许在请求匹配主机名的有效ACME HTTP-01挑战令牌时禁用安全功能集。此时,Cloudflare将返回相应的挑战响应。也就是不是随便一个token都可以让waf失效了

参考文章

https://fearsoff.org/research/cloudflare-acme

https://blog.cloudflare.com/acme-path-vulnerability/


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全随心录 开发小鸡娃 开发小鸡娃《Cloudflare曝零日漏洞:利用证书验证路径可绕过WAF访问任意源站》

评论:0   参与:  0