云安全之OSS对象存储安全总结

对象存储

对象存储(OSS)中可以有多个桶(Bucket),然后把对象(Object)放在桶里,对象又包含了三个部分:Key、Data 和 Metadata。

Bucket

存储空间(Bucket)是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。

  • 同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。
  • 每个用户可以拥有多个存储空间。
  • 存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称。
  • 存储空间内部的对象数目没有限制。

命名规则

同一阿里云账号在同一地域内创建的Bucket总数不能超过100个。Bucket创建后,其名称无法修改。Bucket命名规则如下:

  • Bucket名称在OSS范围内必须全局唯一。
  • 只能包括小写字母、数字和短划线(-)。
  • 必须以小写字母或者数字开头和结尾。
  • 长度为3~63个字符。

命名示例

Bucket名称的正确示例如下:

  • examplebucket1
  • test-bucket-2021
  • aliyun-oss-bucket

Object

对象(Object)是 OSS 存储数据的基本单元,也被称为 OSS 的文件。和传统的文件系统不同,对象没有文件目录层级结构的关系。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的 Key 来标识

例如:

https://hxsecurityteam.oss-cn-beijing.aliyuncs.com/AAccTest.png

Bucket:hxsecurityteam

地区:oss-cn-beijing

Key:AAccTest.png

对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。可以简单的理解成数据的标签、描述之类的信息,这点不同于传统的文件存储,在传统的文件存储中这类信息是直接封装在文件里的,有了元数据的存在,可以大大的加快对象的排序、分类和查找。Data 就是存储的数据本体。

对象存储利用方法

Bucket STS(SecurityToken)利用

STS服务给其他用户颁发一个临时访问凭证。该用户可使用临时访问凭证在规定时间内访问您的OSS资源。

临时访问凭证无需透露您的长期密钥,使您的OSS资源访问更加安全。

利用工具

alicloud-tools

GitHub地址:https://github.com/iiiusky/alicloud-tools

方法一

ak+sk+sts使用命令:

AliCloud-Tools.exe--sak --ssk --sts --token ecs --list --runner

方法二

OSS Browser

GitHub地址:https://github.com/aliyun/oss-browser

Bucket Object 遍历

在创建 Bucket 时,可以选择是否公开,默认是 private 的权限,如果在错误的配置下,给了​​Listobject​​权限,就会导致可遍历存储桶。

在此时如果选择公有读的话,会出现两种情况

  1. 在只配置读写权限设置为公有读或公共读写的情况下,无法列出对象,但能够直接读取对应的文件(正常情况)
  2. 如果想列出 Object 对象,需要在 Bucket 授权策略中设置 ListObject 即可

情况一

在只配置读写权限设置为公有读或公共读写的情况下,无法列出对象

但是可以直接访问对应的KEY路径(正常情况)

情况二

如果想列出Object对象,只需要在Bucket授权策略中设置ListObject即可。

这样再当我们访问存储桶域名的时候就会发现,已经把我们存储桶的东西列出来了

Bucket 桶爆破

当不知道 Bucket 名称的时候,可以通过爆破获得 Bucket 名称,这有些类似于目录爆破,只不过目录爆破一般通过状态码判断,而这个通过页面的内容判断。

  • AccessDenied:存在存储桶,但无权限访问

  • InvalidBucketName:表示存储桶的名称不符合规范,属于无效的存储桶名称

  • NoSuchBucket:表示不存在这个存储桶

Bucket 特定策略配置可写

特定的策略配置的指的是,如果管理员设置了某些IPUA才可以请求该存储桶的话,此时如果错误的配置了​​GetBucketPolicy​​,可导致攻击者获取策略配置。

情况一

通过直接访问:http(s)://url/?policy来确定是否对 Bucket 具有读取权限

可以看到,管理员配置了对于任意认证主主体开放了所有 Action 的权限。

情况二

burpsuite拦截流量

可以看到我们此时是没有权限访问该存储桶的,我们尝试使用aliyun的cli获取policy

我们可以看到,需要符合UserAgent为UzJu才可以访问

Bucket 任意文件上传与覆盖

如果在配置存储桶时,管理员错误的将存储桶权限,配置为可写,这将会导致攻击者可上传任意文件到存储桶中,或覆盖已经存在的文件

如果目标的对象存储支持 html 解析,那就可以利用任意文件上传进行:

  • XSS 钓鱼
  • 挂暗链
  • 挂黑页
  • 供应链投毒等操作

情况一

情况二

当我们访问存储桶的时候,会提示我们已经被policy拦截

如果此时配置了存储桶的oss BucketPolicy,就可以更改Deny为Allow即可访问

我们可以看到Effect中设置为Deny,我们只需要将它更改为Allow即可

随后使用PUT方法上传

随后我们再使用GET获取

此时我们可以正常看到存储桶中的对象了

Bucket 劫持接管

假设管理员通过域名解析并绑定了一个存储桶,但是管理员将存储桶删除后,没有将域名解析的 CNAME 删除,这时会访问域名就会出现 NoSuchBucket。因此可以登录自己的阿里云账号,创建同样的 Bucket 即可。

在阿里云下,当 Bucket 显示 NoSuchBucket说明是可以接管的,如果显示 AccessDenied则不行。

假设有以下一种情况,管理员通过域名解析并绑定了一个存储桶,但是管理员将存储桶删除后,没有将域名解析的CNAME删除,这时会访问域名就会出现上面的情况,NoSuchBucket

现在我们将存储桶删除,就会出现如下情况

现在我们再访问域名会出现如下情况

接管bucket

现在阿里云加了限制,必须在传输管理中配置绑定域名即可。以下情况即可接管该存储桶

当我们访问存储桶的域名时,提示我们NoSuchBucket,这个时候可以登录自己的阿里云账号,创建同样的名称即可。

此时我们刷新,

已经成功接管了该存储桶,尝试上传文件后配置权限公开访问。

Bucket 修改策略

策略可写的时候,除了上面的将可原本不可访问的数据设置为可访问从而获得敏感数据外,如果目标网站引用了某个 s3 上的资源文件,而且我们可以对该策略进行读写的话,也可以将原本可访问的资源权限设置为不可访问,这样就会导致网站瘫痪了。

方法一

可以通过直接 PUT 一个配置,达到攻击的目的。

aliyun oss bucket-policy oss://securitytest-geekby --method put ./oss.json

方法二

访问网站

此时我们如果可以修改策略,我们只需要将获取该对象的权限修改为Deny,该网站既无法在获取图片,JS等信息了

参考链接:

对象存储攻防案例

阿里云 OSS对象存储攻防

阿里云AK+SK泄露之STS(SecurityToken)如何利用

存储空间命名 – 对象存储 OSS – 阿里云

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/148985.html<

(1)
管理的头像管理
上一篇2025-03-12 10:01
下一篇 2025-03-12 10:02

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注