WEB安全
00-HTTP协议
01-前端基础【HTML】
02-前端基础【CSS】
03-后端基础【PHP速通】
04-后端基础【PHP面向对象】
05-MySQL基础操作
06-前后端联动【代码练习】
07-SQL注入
08-SQL注入 Labs
09-跨站脚本攻击【XSS】
09-XSS Labs
10-CSRF
11-SSRF
12-XML 外部实体注入【XXE】
13-代码执行漏洞
14-命令执行漏洞
15-文件包含漏洞
16-文件上传漏洞
17-反序列化漏洞
18-业务逻辑漏洞
19-未授权访问漏洞集合
20-跨源资源共享【CORS】
21-SSTI模板注入
22-并发漏洞
23-点击劫持【Clickjacking 】
24-请求走私
25-路径遍历
26-访问控制
27-身份验证漏洞
28-WebSocket
29-Web缓存中毒
30-HTTP 主机头攻击
31-信息泄露漏洞
32-原型污染
33-API概述
34-API分类类型
35-API交换格式
36-API身份验证
37-API常见漏洞
38-crAPI靶场
39-JWT
40-DVGA靶场
41-服务器端参数污染
42-API Labs
43-OAuth Labs
44-GraphQL API Labs
45-JWT Labs
46-小程序抓包
47-云存储
48-对象存储OSS
49-存储桶
50-存储桶漏洞
51-STS访问OSS
-
+
50-存储桶漏洞
浏览
1
存储空间(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,找到敏感信息。 在目标网站源码中找到。 
毛林
2026年11月15日 18:27
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~