Z6人生就是博

EN
  • 【漏洞预警报告】MinIO 服务端请求伪造漏洞

    发布时间:2021-03-12
    浏览量: 14111

    漏洞简述



    时间2021年02月02日

    发现MinIO组件存在服务端伪造请求漏洞的信息 ,漏洞编号:CVE-2021-21287 。

    程序详情

    MinIO 是一个基于Apache License v2.0开源协议的对象存储服务 。它兼容亚马逊S3云存储服务接口 ,适合于存储大容量非结构化的数据 ,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等 ,而一个对象文件可以是任意大小 ,从几kb到最大5T不等 。

    MinIO是一个轻量的服务,可以很简单的和其他应用的结合 ,类似 NodeJS, Redis 或者 MySQL 。



    风险等级



    威胁等级:高

    影响范围:广泛



    漏洞详情


    该漏洞是由于MinIO组件中LoginSTS接口逻辑设计不当 ,导致服务端请求伪造漏洞 。攻击者通过精心构造URL来修改对此功能的调用 。在服务器端请求伪造攻击中 ,攻击者可以利用服务器上的功能来读取或更新内部资源 ,可能结合内网其他服务进行执行任意命令 。



    影响版本

    MinIO < RELEASE.2021-01-30T00-20-58Z

     修复建议

    升级组件到安全版本

    github链接https://github.com/minio/minio

    安全版本

    MinIO >= RELEASE.2021-01-30T00-20-58Z



    漏洞复现分析


    漏洞分析

    修复记录提交日志链接:

    https://github.com/minio/minio/commit/eb6871ecd960d570f70698877209e6db181bf276#diff-2b3f29fdeadc144f19a2d0e02e076608e0dd58cb2cce21b1b974bfc5bd21304b

    从修复记录中可以看出 ,修复后移除了可控参数host的相关代码 。

    1615537170.png

    MinIO中的LoginSTS接口用于代理AWS STS登录请求 ,将发送到JsonRPC的请求转化成STS的方式 ,再转发给本地的9000端口 。

    未修复前 ,因为请求头是用户可控的 ,所以这里可以构造任意的Host ,进而构造一个SSRF漏洞 。


    漏洞复现


    0x00 环境部署

    使用docker-compose 部署

    1615537191.png

    访问http://you-ip:9000到登录页面

    1615537210.png

    0x01 刷新页面 ,找到登录页面包含的JsonRPC请求

    1615537231.png

    0x02 先使用python3启动一个http服务 ,用于检测是否有回调过来

    1615537244.png

    0x03 修改method为 web.LoginSTS ,指定host参数

    1615537258.png

    0x04 点击Go之后可以看到已经有访问记录了 ,证明存在SSRF漏洞

    1615537274.png

    热点内容

    开始试用Z6人生就是博产品
    申请试用

    20年公安服务经验

    7*24小时应急响应中心

    自主知识产权的产品装备

    专家级安全服务团队

    网络空间数据治理专家

    荣获国家科学技术二等奖

    置顶
    电话

    400-700-1218

    官方热线电话

    咨询
    留言
    二维码
    767c1a96394fd651d8ff50290509ddbe 微信公众号
    ba7d00456f0791d9575d17b722e3b66e 公司微博
    【网站地图】