实战阿里云OSS云攻防

文章首发于:https://forum.butian.net/share/1615

写在前面

现在,云服务器逐渐进入人们的视野,越来越受欢迎,由于云服务器易管理,操作性强,安全程度高,很多大型厂商都选择将资产部署在云服务上,但随之也出现了一些安全问题,接下来将介绍五个案例,由于以下的案例大多都是真实案例,所以打码会打得严重些。

案例演示

从任意文件上传到任意文件覆盖

遇到一个文件上传点
在这里插入图片描述
先上传一个图片,并抓包,成功上传于是乎想要更改文件的类型为html,但是上传后不解析,继续更改Content-Type的值为text/html,上传后成功弹窗。

包如下:

POST / HTTP/1.1

Host: xxxx.aliyuncs.com

Connection: close

Content-Length: 1077

Accept: application/json, text/plain, \*/\*

Origin: https://xxxxxx

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryral5YOuPBEepOBbe

Referer: https://xxxx.cn/xx/

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="name"

165027756922712.png

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="key"

20220418/3a7166a3063f7a82774bdd62727fb5fa251650277569228.png

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="policy"

eyJleHBpcmF0aW9uIjoiMjAyMi0wNC0xOFQxNzoyMzoyOFoiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsIjIwMjIwNDE4XC8iXV19

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="OSSAccessKeyId"

xxxxx

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="success\_action\_status"

200

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="signature"

xxxxx

\------WebKitFormBoundaryral5YOuPBEepOBbe

Content-Disposition: form-data; name="file"; filename="12.png"

Content-Type: text/html

<script>alert(1)</script>

\------WebKitFormBoundaryral5YOuPBEepOBbe—

在这里插入图片描述
拼接上去就造成了存储xss,当然也可以挂黑页等操作,由于这是oss云服务器,并且域名太长没实际性危害。接着就想着继续提高危害。
在这里插入图片描述

在他的其他网站下static图片地址引起了我的注意,static不也是存放静态资源图片等信息的服务器吗?而oss也是一样的,那么两者是否会相通呢?
在这里插入图片描述
我直接将oss服务器域名删除后替换为static服务器也直接弹窗。那么这不就是他的域名了吗?这其实是oss服务器和他的static静态服务器进行绑定的结果,所以我们上传的html也可以被static服务器接收并解析。
在这里插入图片描述

继续寻找突破口提高危害。
首先看了看文件名和路径是否可控,既然可控把我高兴坏了呀。
在这里插入图片描述
我先将要替换的图片保存了一手,然后做个稍微小一点的标记进行上传,这样就不容易给抓,也能证明危害,师傅们挖此类漏洞的时候也要注意。

接着我更改了目录名和服务中图片名命名为同一个
在这里插入图片描述
可以看到我上传的图片中多了一个x,也就是我做的标记,由于该网站还有js等文件,那么也可以进行js等文件覆盖,那么将造成整个网站被我们所控制,可想而知危害有多大。
在这里插入图片描述
在我们遇到oss任意文件上传的时候,先判断文件的路径和文件名是否可控,接着去同厂商的其他网站查找静态图片或文件,看是否可以相互转换,实现任意文件覆盖,这样一个几乎毫不起眼的危害将直接提升为严重危害。

image.png
常见的静态服务器域名很多都是以img、static、img1开头

信息泄露

在oss渗透思路中我还遇到accessKeyId、accessKeySecret泄露,如果这两个泄露就能获取到oss对象存储的所有权限。
在这里插入图片描述
常见泄露方式有以下四种:

文件上传点

在文件上传点,抓包就直接泄露
在这里插入图片描述

源码文件中泄漏

反编译获取小程序的源码和APP的源码
我还是喜欢用fileseek手工查找,需要注意的是很多时候都会对accessKeyId、accessKeySecret进行缩写
在这里插入图片描述
在这里插入图片描述

通过应用程序报错读取

该情况我没有碰到,但是朋友那遇到了,大概是这样,比如请求某个接口,返回包中报错出现accessKeyId、accessKeySecret敏感信息,这里只能打个比方如下:
在这里插入图片描述

目标网站JS文件中获取

在这里插入图片描述

阿里云OSS存储桶接管

原理:管理员通过域名解析绑定了一个存储桶,管理员不需要这个存储桶将器删除后,由于没有将域名解析的CNAME删除,就会出现下面的NoSuchBucket情况,要想接管该存储桶还需要一个前提就是需要在传输管理配置绑定域名,下面的情况可以接管存储桶。
在这里插入图片描述
我们只需要创建同样的存储桶名称即可,这里我没有进行接管,先提交了和产商核对确实存在(提醒一下那个地域需要和目标的一样)
在这里插入图片描述

Bucket权限配置错误-导致信息泄露

在进行Bucket桶创建时,默认的权限时私有权限,如果在配置成为公共读或者公共读写的情况下,这里配置成公开读

在这里插入图片描述
无法列出存储桶
在这里插入图片描述
但是如果创建了公共读并且Bucket授权策略设置成ListObject,将导致遍历存储桶
在这里插入图片描述
在这里插入图片描述
以下存储桶由于配置错误,导致了整个存储桶遍历
在这里插入图片描述
接下来我们拼接key标签下的值,导致身份证信息泄露
在这里插入图片描述

Bucket权限配置错误-导致拒绝服务

在我们遍历存储桶时,其实还可以增加一个漏洞就是拒绝服务(这个要根据情况具体分析)
原理:由于max-keys参数可控,我们通过更改max-keys的大小请求服务器,由于服务器接收到该请求要根据这个参数的大小返回数据给我们客户端,将占用服务器资源,这将经历一个漫长的过程,我们通过工具发送大量的该请求,就可以在短时间内使整个存储桶造成拒绝服务。(这里关键是要观看最大值返回的数据包大小和响应的时间)

在这里插入图片描述
更改max-keys的值,如果值在不断变大并且响应时间需要几十秒和数据非常大的话,说明存在拒绝服务漏洞。
在这里插入图片描述

结语

以上是阿里云OSS攻防的常见思路,欢迎大家关注公众号:红云谈安全

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值