什么是对象存储?
这里的对象存储指的是各种云服务器厂商提供的一种云服务,对于对象存储这个名词,每个厂商给出的叫法都不一样
大纲
可以将对象存储的功能理解为寄存器,假如有一天,你的云服务器空间都已经满了,但这个时候你还需要上传一点文件,因为你所搭建的网站需要将这些文件展示出来。那么这个时候就可以在云厂商开启对象存储的服务,将需要被上传的文件放在对象存储这个空间内,然后可以选择对这个空间配置域名,接着编辑下url就可以在网页中访问到刚刚上传的文件
以下面图片为例 创建一个对象存储Bucket(桶)名为gayxiaodi,整个存储桶的url就变成了gayxiaodi.oss-cn-hongkong.aliyuncs.com (仅仅对于阿里云来说)桶id.对象存储名词-cn-地区.厂商.com (对全部厂商)
在桶内上传文件index.html
绑定域名
接着重点来了,访问存储桶的路径会直接下载整个html文件
访问配好域名的会解析html文件
造成这俩差异的原因是存储桶只负责存东西,不会解析其中的文件,而用域名的形式访问就相当于打开浏览器去打开这个html文件,完成解析。如果为其他格式的文件,可能存在无论以哪种形式访问都直接下载的情况
有的同学就会问了,那么这其中的漏洞在哪儿呢?
那么来了,刚刚直接访问存储桶就可以完成下载文件的操作了,那么要是里面有一些敏感文件呢?是不是就造成了不可挽回的后果?
任意文件上传
此漏洞是由于管理员配置不当,为每个访问到存储桶的人都添加了公共读写的权限,前面的可以下载html例子是因为添加了公共读
使用bp发包,put请求在这个存储桶上传一个123.txt文件,内容为xiaodisec
直接可以下载,确认是刚刚发包上传的文件
解析域名劫持
还记得前面提到的存储桶的url构造吗,除了自定义的桶id外,其他能组合的方式就那么几种。所以对于每个桶来说,id是唯一的
造成被域名劫持是因为,当一个管理员删除桶后,马上有图谋不轨的人以同样的id创建桶,这样对方解析的资源就跑到你的桶上面去了。所以为了避免出现此情况,需要删掉存储桶和域名解析
Accesskey泄露
有些程序为了利用到存储桶内某些资源,需要和oss对象存储建立连接,会创建一个Accesskey作为访问凭据,那么就可能泄露在代码中。可以利用这个访问凭据直接登录到oss中
Comments NOTHING