COS对象遍历
# 腾讯云 COS 对象遍历
# 1. 环境搭建
使用 TerraformGoat (opens new window) 搭建漏洞环境。
第一步,通过 docker 来运行工具 TerraformGoat :
- 获取 TerraformGoat 镜像;
- 运行 TerraformGoat 容器;
- 进入 TerraformGoat 容器。
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker run -itd --name terraformgoat_tencentcloud_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker exec -it terraformgoat_tencentcloud_0.0.7 /bin/bash
1
2
3
2
3

第二步,为相应的环境 配置腾讯云访问密钥:
cd /TerraformGoat/tencentcloud/cos/bucket_object_traversal/
vim terraform.tfvars
1
2
2
填写你自己的腾讯云 AK 与 KEY :

第三步,初始化 并 部署环境:
terraform init
terraform apply
1
2
2
部署完成之后,将会返回存储桶的域名:
- 初始化(时间可能较长,需耐心等待)。
- 部署环境,需要输入 yes 确认操作。

存储桶页面:

# 2. 漏洞复现
如图,存储桶以 XML 列表的形式,列出了其内的所有文件,说明存在存储桶遍历漏洞。
其中有一个名为weflag.txt
的文件。

访问该文件,获得 flag(没错,就是这么简单)。

# 3. 漏洞修复
打开腾讯云控制台,找到对象存储 --> 存储桶列表 --> 配置管理
。

进入配置管理之后,找到权限管理 --> Policy权限设置 --> 编辑
。

在配置策略中,可以看到一个名为GetBucket
的策略项,它将导致存储桶遍历漏洞。
删除GetBucket配置项 --> 完成

有许多配置项 都会导致存储桶遍历漏洞:
- 读操作(含列出对象列表)
- GetBucket
- ...等危险配置项

删除对应配置项,保存配置。
刷新存储桶页面,显示 AccessDenied ,修复成功。

虽然 存储桶遍历 不存在了,但是攻击者依然可以通过目录/文件枚举的方式,找到存储桶内的敏感文件。

# 4. 销毁环境
练习完成之后,请立马销毁环境,防止:
- 环境一直运行,持续扣费;
- 环境是公网访问的,容易遭受攻击;
- ...等问题
# (1)销毁方式一
通过命令行进行销毁操作,
terraform destroy
1

# (2)销毁方式二
通过控制台进行销毁:
对象存储 --> 存储桶列表 --> 更多 --> 删除

再次访问存储桶页面,将会提示 NoSuchBucket(没有找到存储桶),说明销毁成功。

编辑 (opens new window)