阿里云 OSS对象存储攻防

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文分为两个部分第一部分介绍OSS对象存储攻防的方式第二部分为真实漏洞案例

文章首发于:火线Zone社区

作者:UzJu

本文分为两个部分

第一部分介绍OSS对象存储攻防的方式
第二部分为真实漏洞案例

01 Bucket权限配置错误-公开访问

在创建Bucket桶时,默认是private的权限,如果在错误的配置下,给了listobject权限,就会导致可遍历存储桶。

image.png

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

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

image.png

但是可以直接访问对应的KEY路径:

image.png
image.png
image.png

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

image.png
image.png

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

image.png

02 Bucket桶爆破

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

当对于阿里云OSS 不存在有两种返回情况,分别是 InvalidBucketName 和 NoSuchBucket。

image.png

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

image.png

NoSuchBucket:表示没有这个存储桶。

当存储桶存在时,则会返回以下两种情况

image.png
image.png

这样通过返回内容的不同,就可以进行 Bucket 名称爆破了,知道 Bucket 名称后,Key 的爆破也就很容易了。

03 特定的Bucket策略配置

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

image.png

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

image.png

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

image.png

04 Bucket Object遍历

image.png

如果设置了ListObject,这将会导致Bucket桶被遍历。

image.png

可通过访问Key,来下载该文件。

image.png

05 任意文件上传与覆盖

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

image.png

image.png
image.png

如果目标的对象存储支持 html 解析,那就可以利用任意文件上传进行 XSS 钓鱼、挂暗链、挂黑页、供应链投毒等操作。

06AccessKeyId,SecretAccessKey泄露

如果目标的 AccessKeyId、SecretAccessKey 泄露,那么就能获取到目标对象存储的所有权限,一般可以通过以下几种方法进行收集:

1、通过GitHub等开源平台中的源代码可发现存在泄露的Key

image.png

2、通过反编译APK,找到敏感信息

3、在目标网站源代码中找到(Js等)

image.png

07 Bucket接管

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

image.png

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

image.png
image.png
image.png

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

image.png

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

image.png

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

image.png

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

image.png

image.png

此时我们刷新

image.png

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

image.png

08 Bucket 策略配置可写

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

image.png

image.png

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

image.png

随后使用PUT方法上传

image.png

随后我们再使用GET获取

image.png

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

image.png

09 修改策略导致网站瘫痪

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

image.png

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

image.png
image.png

10 实战案例

我们精心挑选了来自火线安全众测项目中,漏洞奖金较高的漏洞进行举例!

1、阿里云存储桶劫持

image.png

此时可以看到访问该域名显示NoSuchBucket,那么只需要去阿里云存储桶重新创建一个与HostID一样的存储桶名称即可。

image.png
image.png

随后只需要上传文件,就可以让该域名显示我们上传的任意文件。

image.png

2、反编译小程序,APP找到泄露的Key

image.png
image.png
image.png

3、在JS文件中找到存在泄露的AccessKey

image.png
image.png

image.png

image.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
8天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
3月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
4月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
180 2
|
4月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
172 1
|
4月前
|
运维 Serverless 数据处理
函数计算产品使用问题之在对象存储服务(OSS)上创建ZIP包解压触发器后,触发器未按预期执行,一般是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何将冷存到OSS(Object Storage Service)的数据恢复
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
4月前
|
持续交付 开发工具 对象存储
阿里云云效产品使用合集之构建物如何上传到阿里云OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章