type
status
date
slug
summary
tags
category
icon
password
一、Bucket权限配置错误-公开访问
在创建Bucket桶时,默认是private的权限

上传一个文件,记录其URL

尝试访问就会发现其提示"You have no right to access this object because of bucket acl",不具备访问权限。

修改权限为公共读

尝试访问
会发现依旧无访问权限

但是加上文件路径去访问,就能实现文件下载

添加Bucket授权策略为包含ListObject

再次访问 https://j5q1laoyzy22opum1.oss-cn-beijing.aliyuncs.com/ 会发现页面列出了存储桶内的文件,其中key就是文件名,拼接到URL后即可下载存储桶中的内容,即实现了文件的遍历。

二、Bucket桶爆破
当不知道 Bucket 名称的时候,可以通过爆破获得 Bucket 名称,这有些类似于目录爆破,只不过目录爆破一般通过状态码判断,而这个通过页面的内容判断。
对于阿里云OSS,不存在有两种返回情况,分别是 InvalidBucketName 和 NoSuchBucket。
其中 InvalidBucketName 表示存储桶的名称不符合规范,属于无效的存储桶名称

下图的桶名问题就在于小于3个字符

NoSuchBucket 表示没有这个存储桶

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

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

三、特定的Bucket策略配置
特定的策略配置指的是,如果管理员设置了某些IP、UA才可以请求该存储桶

特定UA可以正常访问

否则无法访问

此时如果GetBucketPolicy信息泄露,可导致攻击者获取策略配置,构造符合策略的特定访问条件,即可绕过Bucket策略的访问控制。

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


对文件进行覆写

再次访问即可发现原有文件已被覆写

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

假设有以下一种情况,管理员通过域名解析并绑定了一个存储桶



管理员将存储桶删除后,就会出现如下情况

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

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

管理员将存储桶删除后,没有将域名解析的CNAME删除,这时访问域名就会出现上面的情况,NoSuchBucket。
这个时候可以登录自己的阿里云账号,创建同样的名称即可

此时我们刷新,已经成功接管了该存储桶。

六、Bucket 策略配置可写
当我们访问存储桶的时候,会提示我们已经被policy拦截

访问/?policy就可以发现相关的policy策略

复制响应的json内容,将其中的Deny修改为Allow
将其PUT,覆写原有policy

GET一下,可以发现policy被覆写成功

再次访问存储桶,即可发现可以正常访问了

七、修改策略导致网站瘫痪
这是继"Bucket策略配置修改"后的内容,当policy可以修改时,不但可以修改为Allow,也可以修改为Deny,这样就会导致网站瘫痪。