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

Bucket
存储空间(Bucket)是云安用户用于存储对象(Object)的容器 ,所有的全之全总对象都必须隶属于某个存储空间 。存储空间具有各种配置属性,象存包括地域 、储安访问权限 、云安存储类型等。全之全总用户可以根据实际需求,象存创建不同类型的储安存储空间来存储不同的数据。香港云服务器
同一个存储空间的云安内部是扁平的,没有文件系统的全之全总目录等概念,所有的象存对象都直接隶属于其对应的存储空间 。每个用户可以拥有多个存储空间。存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称 。存储空间内部的源码下载对象数目没有限制。命名规则
同一阿里云账号在同一地域内创建的Bucket总数不能超过100个 。Bucket创建后,其名称无法修改 。Bucket命名规则如下:
Bucket名称在OSS范围内必须全局唯一 。只能包括小写字母 、数字和短划线(-)。必须以小写字母或者数字开头和结尾。长度为3~63个字符 。命名示例Bucket名称的正确示例如下 :
examplebucket1test-bucket-2021aliyun-oss-bucketObject
对象(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 --runner1.

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



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

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

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


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


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

Bucket 桶爆破
当不知道 Bucket 名称的时候,可以通过爆破获得 Bucket 名称,这有些类似于目录爆破,只不过目录爆破一般通过状态码判断 ,而这个通过页面的内容判断。
AccessDenied:存在存储桶,但无权限访问


Bucket 特定策略配置可写
特定的策略配置的指的是 ,如果管理员设置了某些IP,UA才可以请求该存储桶的话,此时如果错误的配置了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 。



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

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

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

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


此时我们刷新,

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

Bucket 修改策略
当策略可写的时候,除了上面的将可原本不可访问的数据设置为可访问从而获得敏感数据外,如果目标网站引用了某个 s3 上的资源文件 ,而且我们可以对该策略进行读写的话,也可以将原本可访问的资源权限设置为不可访问,这样就会导致网站瘫痪了 。
方法一可以通过直接 PUT 一个配置 ,达到攻击的目的。
复制aliyun oss bucket-policy oss://securitytest-geekby --method put ./oss.json1. 方法二访问网站

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

对象存储攻防案例
阿里云 OSS对象存储攻防
阿里云AK+SK泄露之STS(SecurityToken)如何利用
存储空间命名 - 对象存储 OSS - 阿里云
相关文章
关于HardHatC2HardHatC2是一款功能强大的C#命令控制框架,该工具基于C# .NET开发,支持多用户同时使用,旨在协助红队安全研究人员执行安全分析和渗透测试任务。HardHatC2主要包2025-12-07
护航“教育云”,亚信安全信舱云主机安全助力省级考试院建起教育新防线
客户需求:某省级考试院针对虚拟化平台筹建网络威胁防御系统,并提出云主机安全能力集成化、一体化需求,同时提出“虚拟补丁”等运维效率提升和云主机性能保障等技术要求,确保云计算应用在“招生、报名、考试、查分2025-12-07
Novant健康公司承认向Facebook泄露了130万名患者的信息
Novant Health证实,它可能向Meta公司披露了约130万名患者的敏感数据,这其中包括电子邮件地址、电话号码、财务信息,甚至还包括了医生的预约细节。这家横跨北卡罗来纳州、南卡罗来纳州和佐治亚2025-12-07
前阵子就有朋友留言说让我吐槽吐槽数据库安全扫描,此言正合我意。这些年,企业安全事故频发,勒索病毒事故多出,再加上安全对抗演练的进行,让数据库安全在企业里的地位与日俱增,安全扫描也变成了头等大事。也经常2025-12-07
希望采用云计算服务但不想将其数据委托给云计算提供商的企业通常构建自己的本地云,也称为私有云。他们构建自己的基础设施,开发或购买软件,并建立一个内部团队来管理和运营。虽然企业的目标是控制自己的数据,但2025-12-07
英国国家卫生服务NHS)的111紧急服务受到网络攻击,继而引发了重大影响,服务系统出现持续性中断,该攻击袭击了英国管理服务提供商MSP)Advanced的系统。根据NHS111服务的介绍页面,85%2025-12-07

最新评论