抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

云存储漏洞个人看来均为配置不当所造成的漏洞

对象存储

云服务商 对象存储名称 简称
阿里云 Object Storage Service OSS
腾讯云 Cloud Object Storage COS
字节云 Torch Object Storage TOS
华为云 Object Storage Service OBS
亚马逊云 Simple Storage Service S3
谷歌云 Google Cloud Storage GCS
微软云 Azure Blob Storage Blob

字节云存储桶策略配置

基本配置

桶策略支持指定被授权用户,即设置哪些用户可以访问该桶。授权方式主要包括以下两种:

  1. 通过指定主账号 ID 或子账号 ID,限制仅通过身份认证的指定账户才能执行该桶的策略操作。
  2. 所有用户(包含匿名用户)表示用户可以不通过身份认证即可执行当前桶策略,可能导致数据存储安全风险。

存储桶操作总览

四项通用配置,通用配置权限高于桶动作和对象动作权限:

操作名称 说明
* 通配符,表示该资源能进行的所有操作
Get* 表示该资源能进行的所有的获取操作
Put* 表示该资源能进行的所有设置动作
List* 表示该资源能进行的所有的列举操作

二十五项桶动作配置(桶权限配置):

分类 操作名称 说明
桶操作 ListBucket 列举桶内对象
桶操作 HeadBucket 判断桶是否存在,获取桶元数据
桶操作 DeleteBucket 删除存储桶
桶 ACL GetBucketAcl 获取桶访问控制列表的相关信息
桶 ACL PutBucketAcl 设置桶的访问控制列表
桶策略 GetBucketPolicy 获取桶策略
桶策略 PutBucketPolicy 设置桶策略,拥有此权限的用户可以任意更改桶策略,并可以通过此权限获取其他权限
桶策略 DeleteBucketPolicy 删除桶策略
桶标签 GetBucketTagging 获取桶标签相关信息
桶标签 PutBucketTagging 设置桶标签
生命周期规则 GetLifecycleConfiguration 获取桶生命周期规则
生命周期规则 PutLifecycleConfiguration 设置桶生命周期规则
桶版本控制 GetBucketVersioning 获取桶多版本的相关信息
桶版本控制 PutBucketVersioning 设置多版本
桶版本控制 ListBucketVersions 列举桶内多版本对象
跨域访问 CORS GetBucketCORS 获取跨域访问规则
跨域访问 CORS PutBucketCORS 设置跨域访问规则
消息通知 GetBucketNotification 设置桶事件通知
消息通知 PutBucketNotification 获取桶事件通知
图片样式 PutBucketImageStyle 设置桶图片样式
图片样式 GetBucketImageStyle 获取桶图片样式
图片样式 ListBucketImageStyle 列举桶图片样式
图片样式 DeleteBucketImageStyle 删除桶图片样式
桶存储策略 PutBucketStoragePolicy 设置桶默认存储类别
其他 ListBucketMultipartUploads 列出所有分片上传任务

十三项对象动作配置

分类 操作名称 说明
对象操作 GetObject 获取存储桶中的对象
对象操作 PutObject 上传新对象到存储桶
对象操作 DeleteObject 删除存储桶中的对象
对象操作 RestoreObject 恢复已归档的对象
对象ACL GetObjectAcl 获取对象的访问控制列表
对象ACL PutObjectAcl 设置对象的访问控制列表
对象版本 GetObjectVersion 获取指定版本的对象
对象版本 DeleteObjectVersion 删除指定版本的对象
对象标签 GetObjectTagging 获取对象的标签
对象标签 PutObjectTagging 设置对象的标签
对象标签 DeleteObjectTagging 删除对象的标签
其他 AbortMultipartUpload 终止分段上传过程
其他 ListMultipartUploadParts 列出某个分段上传中的所有分段

常见报错提示:

NoSuchBucket-该存储桶不存在

1
2
3
4
5
6
7
8
9
C:\Users\25091>curl https://t2sts.tos-cn-beijing.volces.com/
{
"Code": "NoSuchBucket",
"RequestId": "8aac01ff1df4149867ff1df4-ac147e72-1u4t3U-LB-cb-1AZ-F-LFRZ-B-K2-1",
"HostId": "SmLhwjQatydDZrEBHoZjfbRvIWOXBPHA",
"Message": "The specified bucket does not exist.",
"EC": "0006-00000001",
"BucketName": "t2sts"
}

AccessDenied-表示无权限访问当前存储桶

1
2
3
4
5
6
7
8
9
C:\Users\25091>curl https: //ceshi.tos-cn-beijing.volces.com/
{
"Code": "AccessDenied",
"RequestId": "821001ff1f9fe12e67ff1f9f-b492fee-1u4tAN-LB-cb-tos-1az-front-azc-1",
"HostId": "CntEqLGgnvCEICjkxmNrVAWdmDwwecvS",
"Message": "Access Denied",
"EC": "0003-00000013",
"DetailErrCode": 14020
}

通用配置-List*

当前仅开启通用配置中的List*权限,未手动勾选桶动作和对象动作配置,但此时桶内所有关于List的策略均可操作,例如:ListBucket、ListBucketVersions、ListBucketImageStyle等

小权限配置

List配置

除List操作外其余操作均无法完成,例如拼接Key去访问桶内对象,提示AccessDenied

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\Users\25091>curl https://t1sts.tos-cn-beijing.volces.com/
{
"Name": "t1sts",
"Prefix": "",
"Marker": "",
"MaxKeys": 1000,
"IsTruncated": false,
"Contents": [
{
"Key": "Background.jpg",
"LastModified": "2025-04-15T13:35:19.000Z",
"ETag": "\"6370679cfc4d00e260601033c7a6a6ed\"",
"Size": 1478367,
"StorageClass": "STANDARD",
"HashCrc64ecma": "14378412998985719058"
}
]
}

通用配置-Get*

当前开启通用配置中的Get*权限,未手动勾选桶动作和对象动作配置,但此时桶内所有关于Get的策略均可操作,例如:GetBucketAcl、GetObject

获取存储桶对象

1
2
3
4
C:\Users\25091>curl -O https://t1sts.tos-cn-beijing.volces.com/Background.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1443k 100 1443k 0 0 1694k 0 --:--:-- --:--:-- --:--:-- 1698k

获取存储桶访问控制列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Users\25091>curl https: //t1sts.tos-cn-beijing.volces.com/?acl
{
"Owner": {
"ID": "2106303421"
},
"Grants": [
{
"Grantee": {
"ID": "2106303421",
"Type": "CanonicalUser"
},
"Permission": "FULL_CONTROL"
}
],
"BucketAclDelivered": true
}

ListBucket-列举桶内对象

未开启

1
2
3
4
5
6
7
8
9
C:\Users\25091>curl https://t1sts.tos-cn-beijing.volces.com/
{
"Code": "AccessDenied",
"RequestId": "7c5501fe6ab7461667fe6ab7-bb22f7b-1u4h7P-LB-cb-tos-1az-front-azc-2",
"HostId": "lSFInTDQSxNUMIJTqGguvlRmixYitsDv",
"Message": "Access Denied",
"EC": "0003-00000013",
"DetailErrCode": 14020
}

开启该权限后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\Users\25091>curl https://t1sts.tos-cn-beijing.volces.com/
{
"Name": "t1sts",
"Prefix": "",
"Marker": "",
"MaxKeys": 1000,
"IsTruncated": false,
"Contents": [
{
"Key": "Background.jpg",
"LastModified": "2025-04-15T13:35:19.000Z",
"ETag": "\"6370679cfc4d00e260601033c7a6a6ed\"",
"Size": 1478367,
"StorageClass": "STANDARD",
"HashCrc64ecma": "14378412998985719058"
}
]
}

ListBucketVersions-列举桶内多版本对象

可参考文档:

  1. ListObjectVersions
  2. Python SDK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:\Users\25091>curl "https://t1sts.tos-cn-beijing.volces.com/?versions&max-keys=10"
{
"Name": "t1sts",
"Prefix": "",
"KeyMarker": "",
"VersionIdMarker": "",
"MaxKeys": 10,
"IsTruncated": false,
"Versions": [
{
"ETag": "\"6370679cfc4d00e260601033c7a6a6ed\"",
"IsLatest": true,
"Key": "Background.jpg",
"LastModified": "2025-04-15T13:35:19.000Z",
"Size": 1478367,
"StorageClass": "STANDARD",
"VersionId": "null",
"HashCrc64ecma": "14378412998985719058"
}
]
}