云安全-OSS存储桶漏洞总结
原创
炫彩之星
炫彩之星
菜鸟学安全
2026年10月15日 21:11
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
云时代,对象存储几乎成了开发标配。图片、音视频、日志、备份,往 OSS 上一扔,便宜、稳定、访问还快。但方便的另一面,是配置疏忽带来的风险——一个勾错的权限、一条没清理的 CNAME 解析、一个图省事写死在客户端里的 AccessKey,都可能让整个数据池在公网上\"裸奔\"。近年来大大小小的数据泄露事件里,因存储桶配置不当引发的占了相当一部分:轻则文件被遍历下载,重则数据被覆盖篡改、域名被接管。
本文把 OSS 存储桶的常见漏洞一次性讲透:从环境搭建、Bucket 遍历与桶名爆破,到任意文件上传覆盖、Bucket 接管,再到 AccessKey 泄露与 Bucket 策略配置可写。每一类都配了实测复现截图,最后聊聊怎么修、怎么防。刚入门的安全爱好者、需要排查云资产的运维和安服,都可以直接对照着用。
OSS,对象存储服务,对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。
OSS工作原理: 数据以对象(Object)的形式存储在OSS的存储空间(Bucket )中。如果要使用OSS存储数据,您需要先创建Bucket,并指定Bucket的地域、访问权限、存储 类 型等属性。创建Bucket后,您可以将数据以Object的形式上传到Bucket,并指定Object的文件名(Key)作为其唯一标识。
介绍几个概念:
Bucket:用户用来管理所存储Object的储物空间。
Object:OSS存储数据的基本单元。
Key:当存储文件(Object)时,需要指定此Object的名称(Key),后续您将通过这个Key来获取该Object的内容。 Key也可以用来模拟文件夹的一些属性。
Data:存储的数据本体。
参考
阿里云 OSS对象存储攻防
对象存储(OSS)攻防案例
环境搭建
购买某里云的OSS存储,很便宜一年9块钱。
创建一个Bucket。
默认情况下,Bucket是私有权限( private )。
相关漏洞及其成因
OSS遍历漏洞
Bucket Object遍历
因为将读写权限设置为了公共读( listobject),便会导致可存储桶遍历。
这里设置了权限为listobject,直接访问存储桶域名就能看到存储桶中的所有文件的列表。
使用ossx工具可以遍历 下载 全部文件,工具地址:https://github.com/source-xu/oss-x
Bucket桶爆破
当不知道 Bucket 名称的时候,可以通过爆破获得 Bucket 名称,这有些类似于目录扫描,只不过目录一般通过状态码判断,这里通过页面的内容判断。
NoSuchBucket:存储桶不存在。
InvalidBucketName:存储桶的名称不符合规范,属于无效的存储桶名称。
AccessDenied:存在,但无权限访问。
成功访问。
任意文件上传与覆盖
当存储桶的配置存储桶权限为可写,会导致攻击者可上传任意文件到存储桶中,或覆盖已经存在的文件。
使用PUT方法进行上传,任意覆盖文件。
上传。
覆盖。
Bucket 接管
利用条件相对苛刻一些,需要域名曾解析并绑定了一个存储桶也就是网站托管,存储桶被删除,但域名解析的 CNAME未删除,此时访问时会显示NoSuchBucket。
利用方法是新建一个同样的Bucket,储桶名称相同,并且启用网站托管(域名托管)。
利用的例子:Amazon S3 Bucket桶接管教程
大致就是按照流程接管,开启读取权限,然后上传一个文件。
AccessKeyId,SecretAccessKey泄露
获取目标的 AccessKeyId、SecretAccessKey 泄露,便能获取到目标对象存储的所有权限。
主要来源如下:
1、通过GitHub等开源平台中的源码可发现存在泄露的Key。
2、通过 反编译 APK,找到敏感信息。
3、在目标 网站源码 中找到。
这里用到的工具就是ossbrowser,参考官方文档安装连接即可控制。
安装并登录ossbrowser
Bucket 策略配置可写
若拥有Bucket Policy 的编辑权限,可以通过上传或修改一个新的配置。涉及的权限如下图。
修复方法
存储桶相关的漏洞基本都来自权限管理的问题。
修复方法如下:
1、应做好存储桶的权限管理。OSS鉴权详解
2、注意存储桶过期后及时关闭域名与存储桶的绑定。
3、避免敏感信息泄露。
最佳权限
官方建议是使用私有权限,对文件的所有访问操作需要进行身份验证。
写在最后
把这些漏洞串起来看会发现,它们形式各异——遍历、爆破、上传、接管、密钥泄露、策略可写——但根子上都指向同一个问题:权限管理没做到位。对象存储默认就是私有权限,多数事故并非\"被攻破\",而是权限被改宽了、事后又忘了收回。
防护其实没什么高深技巧:权限最小化,能私有就不公开;域名与存储桶的绑定定期巡检,桶删了解析跟着清;AccessKey 绝不进代码仓库和客户端。云上的安全,很多时候拼的不是攻防技术,而是配置纪律。
看完这篇,不妨现在就去控制台看一眼名下存储桶的权限——说不定会有\"惊喜\"。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论