🌟 ❤️
作者:yueji0j1anke
首发于公号:剑客古月的安全屋
字数:1630
阅读时间: 15min
声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。合法渗透,本文章内容纯属虚构,如遇巧合,纯属意外
目录
前言
基础概念
对象存储攻防
总结
之前多多少少都有所涉及云安全,但不够系统和具体,因此单独开辟一个专题来介绍深入云安全相关概念
云服务代指云厂商提供的服务,国外有著名的AWS,国内比如说
阿里云、腾讯云、华为云
不同的云服务有不同的叫法,下面举几个例子
S3对象存储-> 类似于bucket存储桶、网盘
EC2弹性计算服务->云虚拟机、服务器
RDS云数据库->云数据库
IAM身份和访问管理->云服务器上的身份管理服务
如果大家经常挖src的话,可能早已接触过云存储服务,如下图所示
这样的页面可能存在漏洞(任意文件上传)
当然,现在我们先回归基础概念
在Amazon的标准下,对象存储中可以有多个bucket,有多个对象在bucket中,其中每个对象包含三个部分-> Key(sid)、Data(被存储的数据本身)和Metadata(元数据,类似于标签,方便查询排序)
存储桶一旦设置了所有人可以公开访问,即会存在隐私泄密等问题,就比如此处
访问下载泄露了部分版本号、部署信息
一旦访问存储服务 返回码为403则证明设置了权限访问,不存在该漏洞
类似于目录爆破,通过爆破获取到key进而获取到data内容,也属于隐私泄密的一种
我这里创建一个bucket进行演示
当地址错误,会提示NoSuchBucker或提示InvalidBucketName
当地址正确,会显示正确页面(自然也就知道key)或者显示access denied
对应的,我们如果知道key,也就可以产生Bucket目录对象遍历了
如何对于策略配置不当,则会导致Bucket桶内对象被任意添加、删除、篡改
只需简单的PUT、Delete请求即可完成任意文件上传、覆盖、删除操作
下面做个简单的demo演示
回过来访问查看是否上传成功
超级大高危,一般发现点如下
1.github泄露
2.反编译apk、小程序拿到源码中的ak、sk(不过一般都是加密过的)
3.源代码、js中泄露
搜索关键词
access_key =
secret_access_key =
bucketregion =
这里以阿里云bucket为例
当我们访问bucket显示NoSuchBucket时,证明该存储桶可以被我们创建接管
如果有域名被绑定在该存储桶并已过期或被管理员删除该存储桶,我们就可以通过接管该存储桶进行域名下网页的接管篡改(类似于子域名接管)
比如该网站
被绑定在我的域名下
此时我去官网注册该bucket进行配置创建
成功实现网页域名接管(bucket接管)
访问bucket时,回显如下
这里可以尝试一下bucket策略配置可写(前提是bucket策略配置了putbucketpolicy)
这里需要配置一下ossutil
可以看到这里授权为deny,所以我们看不见存储桶,我们将其更改
上传配置进行修改,再次访问
成功看到bucket里面的object内容
既然可以更改deny为allow,我们还可以让allow变为deny,使某些网页读取不了资源文件直接瘫痪
总体来说,s3对象存储基本围绕bucket展开,进攻方式较为单一,但一旦挖到便是高危,笔者到目前为止也只从反编译小程序中挖到ak和sk解密,获得一个高危。切面较小,不过危害极大。后续将会为大家带来更多云安全内容。
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
参考文献:
https://cloudsec.huoxian.cn/