aliyun-云服务OSS攻击点

0x01 前置知识

全文都是在阿里云的OSS环境上进行的。
在讲oss可能存在的漏洞前,我们先来了解以下oss对象存储服务。

1.1 oss的存储形式

image

假设我在某个云厂商上开启了一个oss服务,创建了一个名xxx的存储桶,上传了一个1.txt的文件,1.txt里的内容是123456。访问1.txt得到的链接为https://xxx.oss-cn-hongkong.aliyuncs.com/1.txt
则我们可以根据这个访问链接分析出来以下信息:

关键词 含义
厂商 aliyun(阿里云)
地区 hongkong(香港)
Bucket xxx
Key 1.txt
Data 123456

1.2 oss和域名进行绑定。

  1. 没有将bucket与域名进行绑定的情况:
    image

  2. bucket与域名进行了绑定的情况:
    image
    一般来说,如果没有将bucket与域名进行绑定,直接访问oss资源链接会浏览器将该文件下载下来,而不会去解析该文件,显示文件中的内容。

0x02 安全测试

2.1 任意文件读写

关键字---->ListBucketResult

可以看到ListBucketResult里的内容,说明匿名者拥有公共读的权限,这时候就可以尝试写入文件,看是否能成功,是否有公共写的权限。

我们可以将方法改成PUT方法,把文件进行上传。

2.2 接管域名

在创建bucket时绑定域名,在删除该bucket的时候忘记解绑该域名,这就是我们要寻找的目标。

关键字----> NoSuchBucket

image
我们怎么做可以接管该域名?非常简单,只要去对应的云厂商创建一个一模一样的bucket即可。
在阿里云的oss管理控制台中创建一个名字与上面桶名一致的bucket。再访问这个域名,发现提示代码已经变成了 AccessDenied,说明这个bucket已经创建成功,但是没有读写权限。
image
在这个桶中上传一个1.txt,内容是123456,读写权限设置为公共读,bucket授权策略为只读(包括ListObject)。
image
image
image
完成以上操作后再次访问该域名,发现该域名可以成功读取bucket中的信息,得知key为1.txt。
image
若访问域名/key,成功访问到了文件,看到了文件里的内容,这时候已经成功接管了该域名。
image
若是直接访问oss资源链接,就会直接将文件下载下来,不会对文件进行解析。
image

2.3 AK/SK泄露

accessKey/secretKey可能会在小程序,app,前端JS上泄露。

对于前端js的ak/sk泄露,我们可以F12直接查找各个厂商ak/sk的关键词看是否能够找到,或者是使用插件findsomethings。

对于小程序和APP,我们可以对它们进行反编译,在反编译好的源码中查看是否有泄露ak/sk。

posted @ 2023-10-17 16:07  anata1133  阅读(358)  评论(0)    收藏  举报