云存储攻防之Bucket配置可写

admin 2024年12月3日12:32:41评论30 views字数 2174阅读7分14秒阅读模式

基本介绍

OBS ACL是基于帐号级别的读写权限控制,权限控制细粒度不如桶策略和IAM权限,OBS支持的被授权用户如下表所示:

被授权用户 描述
特定用户 ACL支持通过帐号授予桶/对象的访问权限,授予帐号权限后,帐号下所有具有OBS资源权限的IAM用户都可以拥有此桶/对象的访问权限,当需要为不同IAM用户授予不同的权限时,可以通过桶策略配置
拥有者 桶的拥有者是指创建桶的帐号。桶拥有者默认拥有所有的桶访问权限,其中桶ACL的读取和写入这两种权限永远拥有,且不支持修改,对象的拥有者是上传对象的帐号,而不是对象所属的桶的拥有者。对象拥有者默认永远拥有对象读取权限、ACL的读取和写入权限,且不支持修改

须知:不建议修改桶拥有者对桶的读取和写入权限。

匿名用户 未注册华为云的普通访客。

须知:开启匿名用户的桶/对象访问权限后,所有人都可以在不经过身份认证的情况下,对桶/对象进行访问。

日志投递用户组 日志投递用户组用于投递OBS桶及对象的访问日志。由于OBS本身不能在账户的桶中创建或上传任何文件,因此在需要为桶记录访问日志时,只能由账户授予日志投递用户组一定权限后,OBS才能将访问日志写入指定的日志存储桶中。该用户组仅用于OBS内部的日志记录。

须知:

  • 当日志记录开启后,目标存储桶的日志投递用户组会同步开启桶的写入权限和ACL读取权限。若手动将日志投递用户组的桶写入权限和ACL读取权限关闭,桶的日志记录会失败。
  • Browser+暂不支持配置。

桶ACL的访问权限如表所示:

权限 选项 描述
桶访问权限 读取权限 此权限可以获取该桶内对象列表和桶的元数据
对象读权限 此权限可以获取该桶内对象对象的内容和对象的元数据
写入权限 此权限可以上传、覆盖和删除该桶内任何对象
ACL访问权限 读取权限 此权限可以获取对应的桶的权限控制列表

桶的拥有者默认永远具有ACL的读取权限

写入权限 此权限可以更新对应桶的权限控制列表

桶的拥有者默认永远具有ACL的写入权限

对象ACL的访问权限如表所示:

权限 选项 描述
对象访问权限 读取权限 此权限可以获取该对象内容和元数据
ACL访问权限 读取权限 此权限可以获取对应的对象的权限控制列表

对象的拥有者默认永远具有ACL的读取权限

写入权限 此权限可以更新对象的权限控制列表

对象的拥有者默认永远具有ACL的写入权限

操作实例

ACLs不可读写

Step 1:配置桶ACLs策略中的"公共访问权限"中的"ACL访问权限"为"不可读不可写"

云存储攻防之Bucket配置可写

Step 2:初始桶策略如下,不包含ListBucket

云存储攻防之Bucket配置可写

Step 3:直接访问可以看到无法列举对象信息

云存储攻防之Bucket配置可写

Step 4:查看acl发现无法访问

云存储攻防之Bucket配置可写
ACLs只可读取

Step 1:配置如下

云存储攻防之Bucket配置可写

Step 2:查看acls信息如下

云存储攻防之Bucket配置可写

请求的响应中以消息元素的形式返回桶的ACL信息,元素的具体意义如下表所示:

元素 元素说明
Owner 桶的所有者信息

类型:XML

ID 用户所属租户的租户Id

类型:字符串

AccessControlList 访问控制列表,记录了对该桶有访问权限的用户列表和这些用户具有的权限

类型:XML

Grant 用于标记用户及用户的权限

类型:XML

Grantee 记录用户信息

类型:XML

Canned 向所有人授予权限

类型:枚举类型,其值只能是Everyone

Delivered 桶的ACL是否向桶内对象传递

类型:布尔类型

Permission 指定的用户对该桶所具有的操作权限

类型:字符串

Step 3:从上面的acls查看结果可以看到此时Everyone都具备读取桶ACLs策略的权限,那么我们这里进行一个简单的尝试来写ACLs,发现失败

云存储攻防之Bucket配置可写

更改桶的ACL请求需要在消息元素中带上ACL信息,元素的具体含义如下表所示:

元素名称 描述 是否必选
Owner 桶的所有者信息,包含ID

类型:XML

ID 被授权用户的租户Id

类型:字符串

Grant 用于标记用户及用户的权限。单个桶的ACL,Grant元素不能超过100个

类型:XML

Grantee 记录用户信息

类型:XML

Canned 向所有人授予权限

取值范围:Everyone

类型:枚举类型

Delivered 桶的ACL是否向桶内对象传递。作用于桶内所有对象

类型:布尔类型。默认false

Permission 授予的权限。详情参见桶ACL访问权限

取值范围:READ | WRITE | FULL_CONTROL

类型:枚举类型

AccessControlList 访问控制列表,包含Grant、 Grantee、Permission三个元素

类型:XML

Step 4:此时我们的ACP依旧不变

云存储攻防之Bucket配置可写
ACLs可读可写

Step 1:配置如下

云存储攻防之Bucket配置可写

Step 2:查看acls信息如下

云存储攻防之Bucket配置可写

Step 3:从上面的acls查看结果可以看到此时Everyone都具备读取和写桶ACLs策略的权限,那么我们这里进行一个简单的尝试来写ACLs

云存储攻防之Bucket配置可写

Step 3:从上面的回显结果可以看到成功改写策略,之后我们转至桶ACLs页面查看对应的策略的变化

云存储攻防之Bucket配置可写

Step 4:之后再次查看ACLs策略时发现已更改为FULL_CONTROL

云存储攻防之Bucket配置可写

Step 5:可以看到此时我们成功改写了桶ACLs中"公共访问权限-匿名用户"的桶访问权限,之后我们再来查看桶对象时可以看到可以成功读取桶的对象

云存储攻防之Bucket配置可写

文末小结

桶的ACLs策略配置不当时,攻击者可以通过ACLs的写ACL策略来实现桶对对象的访问

 

原文始发于微信公众号(七芒星实验室):云存储攻防之Bucket配置可写

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月3日12:32:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云存储攻防之Bucket配置可写https://cn-sec.com/archives/3462314.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息