MinIO verify 接口敏感信息泄露漏洞分析(CVE-2023-28432)

MinIO verify 接口敏感信息泄露漏洞

简介

漏洞描述: MinIO 是一种开源的对象存储服务,它兼容 Amazon S3 API,可以在私有云或公有云中使用。MinIO 是一种高性能、高可用性的分布式存储系统,它可以存储大量数据,并提供对数据的高速读写能力。MinIO 采用分布式架构,可以在多个节点上运行,从而实现数据的分布式存储和处理。

影响范围: MinIO verify接口存在敏感信息泄漏漏洞,攻击者通过构造特殊URL地址,读取系统敏感信息。

漏洞攻击载荷

POST /minio/bootstrap/v1/verify HTTP/1.1

漏洞检测方法

HTTP请求:

GET /api/v1/check-version

HTTP响应:

HTTP/1.1 200 OK
Connection: close
Content-Type: application/json
Date: Fri, 24 Mar 2023 06:26:01 GMT
Server: MinIO Console
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Xss-Protection: 1; mode=block
Content-Length: 69

{
    "latest_version": "minio/minio:RELEASE.2023-03-22T06-36-24Z"
}

当latest_version的value<RELEASE.2023-03-20T20-16-18Z,则存在漏洞。

漏洞代码分析

首先根据攻击载荷,咱们看到在调用bootstrap。根据main.go中的加载模块得知代码逻辑在minio/cmd中。
在这里插入图片描述
紧接着通过查看应用路由得知,存在漏洞的文件为bootstrap-peer-server.go。
在这里插入图片描述
在文件中找到哪里能接受HTTP请求,接受HTTP请求的方法只有两个,
分别在Line130与Line132。
在这里插入图片描述
通过攻击载荷之中的verify得知,我们入口在Line132。咱们看下程序在入口做了什么?
Line133,代码新建上下文对象,用于传递HTTP请求和响应。
Line135,用于输出错误日志。
Line134作为则是获取服务器系统配置。

接下来,需要查看getServerSystemCfg()做了些什么。在getServerSystemCfg()方法中获取了环境变量,其中envValues采用遍历的方式获取了skipEnvs[envK]的value。
在这里插入图片描述
skipEnvs中包含什么?其中包含MINIO_CERT_PASSWD等敏感信息
在这里插入图片描述

MINIO_CERT_PASSWD的值来源于buildscripts\upgrade-tests\minio.env,minio.env之中明文存储着账号密码信息。
在这里插入图片描述
最终由于在逻辑上无认证,导致了未授权访问漏洞。

猜你喜欢

转载自blog.csdn.net/qq_35476650/article/details/129748849