CD's second night

cloudflare-R2存储桶探测(熟肉)

type
status
date
slug
summary
tags
category
icon
password
有多种方法可以查找或识别 Cloudflare R2 存储桶。我们将在本文中介绍 2 种方法。
如果您经常测试 Web 应用程序,则可能会使用代理拦截工具来帮助拦截 HTTP 请求。您可以在 HTTP 响应中搜索引用,因为 R2 存储桶有时用于提供静态内容,例如图像和 javascript 文件。
您可以使用以下正则表达式模式在响应中搜索存储桶: \.r2\.cloudflarestorage\.com\/?
或者搜索典型私有 R2 存储桶的响应:
notion image
对于公有存储桶,您可以查找以下响应: Object not found
notion image
Dorking:
搜索私有 CF R2 存储桶: site:.r2.cloudflarestorage.com "company"
搜索公共 CF R2 存储桶(已启用 R2.dev): site:.r2.dev "company"
notion image
列出与目标相关的所有 R2 桶后,我们就可以进入攻击阶段了。
 
攻击-利用已启用 R2.dev 访问权限
默认情况下,Cloudflare R2 存储桶永远不会公开访问,始终需要用户明确许可才能启用公开访问。不过,开发人员可以通过分配自定义域或启用 R2.dev 来选择公开其数据桶。
分配自定义域是将水桶公开的默认和推荐方式。
R2.dev 是一项简单的功能,使开发人员能够公开他们的数据桶。该功能仅用于测试目的(尤其是在活跃的产品开发过程中)。但有时,开发人员会忘记将其关闭,从而有可能将数据对象泄露给未经验证的访问者。
这意味着,如果开发人员没有为存储桶分配任何自定义域,我们仍然可以通过 R2.dev 请求私有数据对象!数据对象(或文件)通常包含敏感信息(如发票和收据),任何人都不得访问。
例如,攻击者可以通过 Google dorking 轻松查找过去索引过的敏感文件。
 
作为未经授权的用户,您可以通过观察响应,快速检查 R2 存储桶是否启用了 R2.dev。如果索引页面返回 "错误 404.Object not found(未找到对象)",则表示已启用 R2.dev。如果返回 "错误 401.您无权查看此存储桶",则表示 R2.dev 已禁用。
 
 
攻击-利用敏感文件的授权检查缺失
由于 Cloudflare 不提供访问控制列表或 Bucket 策略(或控制访问的类似功能),因此开发人员有责任使用中间件来执行基本的授权检查。特别是对于包含 PII 数据的敏感文件,以验证每个单独文件或数据对象的所有权。
同时如果缺少这一类中间件,而文件桶又是公开的,那么 R2 就无法验证对任何请求文件的访问权限。任何不良行为者都可能在未经授权的情况下查看敏感文件。
如果不采取任何措施限制文件类型、文件大小或文件名,坏人就能上传不需要的文件(如可能引入存储 XSS 漏洞的 SVG 文件)、上传大块数据并增加云账单,甚至通过提供现有文件名来覆盖文件!
 
攻击-利用错误配置的 CORS 政策
过于宽松的 CORS 政策会让坏人从未经授权的来源访问数据桶。
notion image
 
Loading...