使用 CLOUDFLARE 绕过 CLOUDFLARE

admin 2023年10月17日23:39:44评论69 views字数 3888阅读12分57秒阅读模式

由于跨租户安全控制中的漏洞,Cloudflare 客户配置的网站保护机制(例如防火墙、DDoS 防护)可能会被绕过,从而可能使客户遭受 Cloudflare 应该预防的攻击。攻击者可以利用自己的 Cloudflare 帐户滥用 Cloudflare 与客户网站之间的设计信任关系,从而使保护机制失效。Cloudflare 客户应检查其源服务器保护策略,以确保可靠地执行其配置的保护。

介绍

Cloudflare 是一家主要的网络安全供应商,提供托管网站保护服务 [1](例如 Web 应用程序防火墙 (WAF)、DDoS 保护、机器人管理)。这是通过托管反向代理服务器网络来实现的,该网络位于客户的网络服务器(进一步称为“原始服务器”)与其用户之间,从而能够对恶意活动进行流量分析。由于 Cloudflare 的客户可能依赖此服务产品,因此保护源服务器免受任何未通过配置的反向代理服务器的访问非常重要。在遵循 Cloudflare 官方文档 [2] 后,客户可能会无意中使用容易被Cloudflare 平台本身利用的机制。该漏洞源自 Cloudflare 内所有租户(无论是合法的还是恶意的)可用的共享基础设施,使他们能够绕过配置的安全措施并瞄准客户系统。

         使用 CLOUDFLARE 绕过 CLOUDFLARECloudflare 源服务器保护服务可视化

这种保护方面的差距没有明确记录,这就是为什么我们决定通过 Cloudflare 的错误赏金计划负责任地向其披露这一点。Cloudflare 已将此报告归类为“信息性”并将其关闭;因此,我们公开披露这些细节。这是为了允许客户评估其配置是否存在下面讨论的漏洞。

漏洞概述

Cloudflare在 OSI 模型各个层(应用层、传输层和网络层)的官方文档 [2] 中概述了“防止攻击者发现源服务器并通过请求使源服务器过载”的各种机制。这些机制标注了不同程度的安全级别,“中等安全”或“非常安全”,以及相关的技术挑战。在我们的分析过程中,我们发现两种提出的机制都基于以下前提:来自 Cloudflare 的所有到源服务器的流量都将被信任,而来自其他方的流量将被拒绝。我们表明,攻击者可以通过 Cloudflare 平台发送恶意负载,绕过客户可能为其环境配置的各种保护机制(例如 Web 应用程序防火墙),从而滥用对 Cloudflare 的信任。此绕过的有效影响取决于客户的源服务器配置。

经过身份验证的来源拉取

当在传输层上使用“经过身份验证的源拉取”机制(在 Cloudflare 文档中称为“非常安全”)时,Cloudflare 反向代理服务器使用客户端 SSL 证书 [3] 向源服务器进行身份验证。区域设置文档 [4] 提供了两个用于验证客户端连接的选项,这些客户端通过 Cloudflare 的反向代理服务器路由到源服务器。客户可以选择“Cloudflare 证书”或自定义证书。但是,该文档没有讨论与这些选项相关的安全隐患。还需要注意的是,自定义证书只能使用 API 进行配置。如果没有其他信息,可以合理地假设客户会选择使用 Cloudflare 证书这一更方便的选择。

在特定于租户的自定义 CA 上使用共享“Cloudflare 证书 [5]”的未说明的严重影响是,允许源自 Cloudflare 的所有连接,无论哪个 Cloudflare 租户发起连接。攻击者可以使用 Cloudflare 设置自定义域,并将 DNS A 记录指向受害者的 IP 地址。然后,攻击者禁用其租户中该自定义域的所有保护功能,并通过 Cloudflare 基础设施进行攻击。这种方法允许攻击者绕过受害者的保护功能。

使用 CLOUDFLARE 绕过 CLOUDFLARE共享 Cloudflare 证书的利用示例

目前只能通过使用自定义证书来缓解这种情况,这需要客户创建并维护自己的原始拉取证书。

将 Cloudflare IP 地址列入白名单

当在网络层上使用“白名单 Cloudflare IP 地址”机制(称为“中等安全”)时,源服务器会拒绝任何并非源自 Cloudflare IP 地址范围内的连接。设置文档 [6] 记录了如何使用 .htaccess 文件或 iptables 设置这些范围。

与经过身份验证的源拉取一样,此机制未说明的严重含义是,无论租户如何,所有源自 Cloudflare 的连接都是允许的。攻击者可以使用 Cloudflare 建立自定义域,将 DNS A 记录定向到受害者的 IP 地址。接下来,他们禁用该自定义域的所有保护功能,并通过 Cloudflare 的基础设施路由攻击,从而有效绕过受害者配置的保护功能。

使用 CLOUDFLARE 绕过 CLOUDFLARECloudflare IP 白名单利用示例

目前只能通过使用 Cloudflare Aegis [7] 来缓解这种情况,它提供专用出口 IP 地址,而不是使用共享 IP 地址范围。此服务可能不适用于所有客户。

概念验证

以下概述了成功绕过 WAF 受保护域的设置。victim.test尝试使用带有 Cloudflare 源证书的“ Authenticated Origin Pulls”以及“将 Cloudflare IP 地址列入白名单”来屏蔽源服务器203.0.113.42官方文档中概述了。攻击者只需配置域attacker.test,没有任何WAF保护,并设置与victim.test相同的源IP地址。这使得攻击者可以通过attacker.test成功向203.0.113.42发送请求,而当尝试通过victim.test发送请求时,该请求将被阻止。

受害者 Cloudflare 帐户的配置

域:victim.test          
DNS A 记录指向:203.0.113.42          
Cloudflare 设置:

SSL/TLS 加密模式:“完全(严格)”

已启用经过身份验证的源拉取

已创建 Cloudflare Origin 证书

已启用 WAF Cloudflare 托管规则集

WAF Cloudflare OWASP 核心规则集已启用

安全级别:“我受到攻击” – 始终使用启用的 HTTPS

受害者源服务器的配置

已安装 Cloudflare Origin 证书(启用 SSL/TLS)

经过身份验证的来源拉取已安装的 CA(启用 SSLVerifyClient)

iptables 仅允许端口 443 上来自 Cloudflare IP 的入口流量

攻击者 Cloudflare 帐户的配置

域:attacker.test          
DNS A 记录指向:203.0.113.42          
Cloudflare 设置:

SSL/TLS 加密模式:“完全”

已启用经过身份验证的源拉取

WAF Cloudflare 托管规则集已禁用

WAF Cloudflare OWASP 核心规则集已禁用

安全级别:“基本关闭”

保护旁路

Cloudflare WAF 保护受害者的源服务器免受潜在恶意输入的影响。         
> GET https://victim.test/?test=cat%20/etc/passwd HTTP/2          
< HTTP/2 403 禁止

Cloudflare 将潜在的恶意输入转发到受害者的源服务器,绕过受害者的 WAF 配置。         
> 获取 https://attacker.test/?test=cat%20/etc/passwd HTTP/2          
< HTTP/2 200 确定

         

         

2023 年 10 月 4 日更新  

10 月 4 日,Cloudflare 将我们的漏洞报告的严重性从信息性更改为高 (7,5),并宣布他们将采取措施增强文档并更新仪表板,以鼓励按主机名和按区域验证源拉取以保护源服务器,并鼓励用户通过实施主机标头验证和保护其源服务器 IP 地址的机密性来保护其源服务器。

披露时间表  

2023-03-16 通过 HackerOne 向 Cloudflare 报告问题(报告 1909867)          
2023-03-16 Cloudflare 确认问题并已关闭(错误信息)          
2023-09-28 公开披露(>180 天)          
2023-10-04 Cloudflare 更改了严重性从信息丰富到高 (7,5)          
2023-10-04 Cloudflare 宣布增强文档和仪表板

参考  

[1] https://www.cloudflare.com/application-services/products/          
[2] https://developers.cloudflare.com/fundamentals/get-started/task-guides/origin-health/enterprise/          
[3 ] https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/explanation/          
[4] https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/ set-up/zone-level/          
[5] https://developers.cloudflare.com/ssl/static/authenticated_origin_pull_ca.pem          
[6] https://developers.cloudflare.com/fundamentals/get-started/setup/allow -cloudflare-ip-addresses/          
[7] https://blog.cloudflare.com/cloudflare-aegis/

         

原文始发于微信公众号(红队笔记录):使用 CLOUDFLARE 绕过 CLOUDFLARE

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月17日23:39:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 CLOUDFLARE 绕过 CLOUDFLAREhttp://cn-sec.com/archives/2115953.html

发表评论

匿名网友 填写信息