云安全
云安全概述
阿里云概述
亚马逊AWS概述
云计算导论
云计算概述
云计算的关键技术
虚拟化
分布式文件系统
云存储
数据处理
并行计算
OpenStack
容器
Kubernetes概述
Serverless
Hadoop
云原生
云数据中心
微服务
对象存储OSS
云存储
对象存储
对象文件(Object)
存储桶(存储空间)
通过外网访问OSS
存储桶漏洞
STS访问OSS
权限与访问控制
访问控制
Bucket&RAM Policy
预签名
Docker
01docker概述
02docker安装
03目录结构
04基础操作
05底层原理【理论】
06底层原理【实践】
07DockerFile
08容器反查Dockerfile
09Docker 逃逸
-
+
首页
存储桶漏洞
存储空间(Bucket)也称为存储桶。 ## 存储桶爆破与遍历漏洞 根据之前所学的知识,存储桶(对象空间)的命名在OSS范围内必须是全局唯一,在加上对象的外网访问链接特性,例如: ```bash https://maolintest.oss-cn-beijing.aliyuncs.com/101.jpg ``` 当不知道Bucket名称时,可进行Bucket名称的爆破,根据页面 的内容进行判断是否存在。 ```bash https://Bucket名称.oss-cn-地域名称.aliyuncs.com ``` 对于阿里云而言,地域列表:https://help.aliyun.com/zh/oss/regions-and-endpoints?spm=a2c4g.11186623.0.0.b70d54b5JBJK0V#concept-zt4-cvy-5db > 存储桶不存在 NoSuchBucket  > 无效的存储桶名称 InvalidBucketName 、 > 无权限访问 AccessDenied  > 存在存储桶遍历漏洞 ListBucketResult  XML根目录字段分析: | 节点名称 | 字段值 | 含义与分析 | | -------------- | ---------- | ------------------------------------------------------------ | | \<Name> | maolintest | 存储桶名称,唯一标识该 OSS 资源(对应访问域名maolintest.oss-cn-beijing.aliyuncs.com)。 | | \<Prefix/> | 空值 | 未设置「前缀过滤」,本次查询列举的是**存储桶根目录下的所有文件**(未限定特定目录 / 前缀)。 | | \<Marker/> | 空值 | 未设置「分页起始标记」,本次查询是**首次请求**(非从某一文件后续继续分页)。 | | \<MaxKeys> | 100 | 单次查询最大返回文件数,使用默认值(阿里云 OSS 默认MaxKeys=100,取值范围 1~1000)。 | | \<Delimiter/> | 空值 | 未设置「目录分组字符」(如/),因此不会返回<CommonPrefixes>(即无目录层级划分,所有文件均在根目录)。 | | \<IsTruncated> | false | 结果未被截断,说明存储桶内的文件总数 **≤100**(未超过MaxKeys上限),当前返回的是全量文件列表。 | contents节点分析: | 子节点名称 | 字段值 | 含义与分析 | | ----------------------- | ---------------------------------- | ------------------------------------------------------------ | | \<Key> | 101.jpg | 文件的唯一标识(OSS 中称为「对象键」),说明文件名为101.jpg,存储在**根目录**(无路径前缀)。 | | \<LastModified> | 2025-10-11T07:33:31.000Z | 文件最后修改时间(UTC 时区),对应北京时间为2025-10-11 15:33:31(UTC+8),可用于判断文件更新时间。 | | \<ETag> | "890AA849963696A8D417D305AE50C359" | 文件的哈希校验值(MD5 算法),用于验证文件完整性:1. 下载文件后,可计算本地文件 MD5 与该 ETag 对比,确认是否下载损坏;2. 若文件未被修改,ETag 值不会变化(修改后 ETag 会更新)。 | | \<Type> | Normal | 文件类型为「普通文件」,非「删除标记(DeleteMarker)」,说明该文件未被软删除(若存储桶开启版本控制,删除文件会生成DeleteMarker类型记录)。 | | \<Size> | 124920 | 文件大小,单位为「字节」,换算后约为122KB(124920 ÷ 1024 ≈ 122),属于小型图片文件(符合jpg格式的常见大小)。 | | \<StorageClass> | Standard | 存储类型为「标准存储」,阿里云 OSS 标准存储适用于**频繁访问场景**(如网站图片、日常业务文件),特点是访问速度快、可用性高(99.99%),但存储成本高于低频访问 / 归档存储。 | | \<Owner>→\<ID> | 1384724003449845 | 文件所有者的阿里云账号 UID(唯一标识),该 UID 对应的账号拥有文件的完整控制权(如修改、删除、授权)。 | | \<Owner>→\<DisplayName> | 1384724003449845 | 所有者显示名,此处与 UID 一致(默认未自定义显示名时,阿里云会用 UID 作为显示名)。 | 漏洞原因:因为在Bucket授权策略中将读写权限设置为了公共读( listobject),便会导致可存储桶遍历。   > 测试方法 可以用子域名爆破的方式,通过返回页面XML中的标签内容进行判断。 ## 存储桶接管漏洞 > 概述 存储桶接管漏洞是云存储中一类典型的配置缺陷,攻击者通过滥用云服务的权限机制或未及时清理的资源,非法获取存储桶的控制权。 大致为:自己创建了一个存储空间,将别人的存储空间名字抢走。 > 满足以下条件,利用条件相对苛刻 管理员通过域名解析并绑定了一个存储桶,但是管理员将存储桶删除后,没有将域名解析的CNAME删除,此时,访问域名会出现 **NoSuchBucket**。 此时就是可以自己去创建一个同样的Bucket名称。  ## PUT 文件上传与覆盖 当存储桶(存储空间)的权限控制-读写权限配置为公共读写时,会导致攻击者可上传任意文件到存储桶中,或覆盖已经存在的文件。 公共读写:任何人(包括匿名访问者)都可以对该存储空间内文件进行读写操作。  > 具体操作 例如:已经获取到OSS的其中的文件链接为:https://maolintest.oss-cn-beijing.aliyuncs.com/101.jpg 访问链接时,通过burp抓取数据包:  修改请求方式和上传内容:   修改2.txt内容:   ## AccessKey ID ,Secret AccessKey 泄露 > 概述 AccessKey ID 和 AccessKey Secret 是访问云服务 API 的密钥。相当于云平台的账户和密码。 访问密钥AccessKey是程序调用OpenAPI访问阿里云资源的一种凭证,云账号AccessKey(又称主账号AccessKey)默认有账号的全部权限。 因持有者保管不当导致云账号AccessKey泄露,将会威胁账号下所有资产的安全、可能产生非预期的费用以及被恶意勒索等。 2025年8月18日起阿里云会分批将**云账号AccessKey数量配额从5个调整为2个**。   如果攻击者获取到AK和SK,便可以直接接管受害者云平台。 > AK和SK的主要泄露来源 通过GitHub等开源平台中的源码可发现存在泄露的Key。 通过反编译APK,找到敏感信息。 在目标网站源码中找到。 
毛林
2025年10月12日 10:24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码