我理解有问题还是 backblaze 的对象存储就有这种漏洞?

2021-06-20 08:53:28 +08:00
 stimw

之前看到 v 友讨论腾讯 cos 防刷,有人提到:

事实上如果找到你 COS 桶源站域名,就算你每个请求都鉴权,攻击者也可以靠刷请求次数让你破产~(无效请求也要计费)

看后虎躯一震,想到一直在用 backblaze 的对象存储服务完全可以被别人推出桶源站域名( S3 URL)...

具体情况如下:

背景

我目前是 backblaze 搭配 cloudflare 使用,使用他们的"friendly URL"套 cf 可以减免回源流量费。

官方套 cf 文档: https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN

槽点

简单解释一下,

Friendly URL 示例: https://f000.backblazeb2.com/file/my-bucket-name/image-name

也就是说,套上 cf 后,访问地址就变成了: https://我的二级域名 /file/存储桶名 /图片名

然后它的 S3 URL 是这样的: https://存储桶名.s3.us-west-000.backblazeb2.com/图片名

那么问题来了,其他人只要根据 cdn 访问地址,就可以知道我的存储桶名,然后轻易地推出 S3 URL 。

然后就如 v 友所说。。

事实上如果找到你 COS 桶源站域名,就算你每个请求都鉴权,攻击者也可以靠刷请求次数让你破产~(无效请求也要计费)

官方第一次回应

Hello there,

Thank you for taking the time to write in,

The only vulnerability that may occur is if a malicious user would download your files many times to incur a large download bill on your part, but just knowing the public URLs of the files does not grant access or the ability to upload or delete files from a public bucket. If the bucket is private no downloads, inquires or other type of access can occur unless they have a valid app key and keyID to that bucket, which would be impossible to retrieve from your website.

Let me know if you have any other questions.

Regards,

Bob The Backblaze Team

可能我表达出了问题,他没有理解我的意思,还是确实他们的无效请求不计费?

我现在再问的话,因为有时差,应该明天才能回复我了。

本来就对这个不太懂,有没有 v 友可以指导下...

5396 次点击
所在节点    程序员
24 条回复
stimw
2021-06-20 09:14:52 +08:00
kerro1990
2021-06-20 09:16:20 +08:00
rewrite 一下不就行了, 隐藏一下 bucket name
ericls
2021-06-20 09:16:54 +08:00
感觉他们都 typo 了
icy37785
2021-06-20 10:42:32 +08:00
这肯定不能算漏洞呀,好像公园提供福利 60 岁以上老人免票,总不能说没带老年证没带身份证就免不了票是漏洞吧。证件得自己带吧。
流量联盟这事儿也是的,流量联盟互免流量是提供的福利的,怎么隐藏自己的 bucket name 是用户自己的事情。
甚至不排除他们就是是故意这样设计的,如果是故意这样设计的那就更不是漏洞了。🙈
ruixue
2021-06-20 11:04:03 +08:00
https://blog.meow.page/archives/free-personal-image-hosting-with-backblaze-b2-and-cloudflare-workers/

可以用其他方式隐藏
stimw
2021-06-20 11:56:08 +08:00
@kerro1990 我仔细查看了文档,CF 的免费甚至 pro 计划都不支持使用正则表达式重写...不过下面有朋友发了一个 cf worker 的教程,感觉可以。


@icy37785 emm...漏洞这个表述可能不太恰当,改成“坑”或者“槽点”?


@ruixue 感谢!正好我也看到了用 Cloudflare Workers 从私有 bucket 中获取资源
xiaoz
2021-06-20 12:52:13 +08:00
可以配合 cf 的 worker 规则隐藏 bucket
lqf96
2021-06-20 12:57:05 +08:00
@stimw @xiaoz 已经不需要 worker 了,cf 最近推出了新的 transform rules 可以做 rewrite: https://blog.cloudflare.com/introducing-transform-rules-with-url-rewriting-at-the-edge/
Jooooooooo
2021-06-20 13:46:17 +08:00
地址没做加密吗?
stimw
2021-06-20 14:08:37 +08:00
@lqf96 这个我试过了,cf 目前免费版甚至 pro plan 似乎都不支持正则表达式去 rewrite...
boboliu
2021-06-20 16:03:18 +08:00
@stimw #10 可以的, 使用 prefix 匹配然后用 concat 拼接一个 prefix 即可, 效果 https://picb2.oho.sh/2021/06/20/QQ20200721090042.jpg
AlexPUBLIC
2021-06-20 16:11:50 +08:00
@stimw 就是用
cf worker
stimw
2021-06-20 16:18:14 +08:00
@boboliu 是不是发错图了...
boboliu
2021-06-20 16:22:29 +08:00
@stimw #13 ? 我的意思是后面的图是演示
stimw
2021-06-20 16:50:17 +08:00
@boboliu 臣妾做不到啊
lostberryzz
2021-06-20 16:56:10 +08:00
按照 11L 的方法成功实现

https://z3.ax1x.com/2021/06/20/RFJ7DK.png
BrettD
2021-06-20 16:56:18 +08:00
对方以为你说的是安全漏洞吧
stimw
2021-06-20 17:49:39 +08:00
@lostberryzz
@boboliu 卧槽是这意思,我也成功了。
swulling
2021-06-20 20:37:37 +08:00
直接开个 bucket 自己测试下不就完了。
dusu
2021-06-20 20:56:53 +08:00
重写一下隐藏 bucket 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/784561

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX