文章总结: jeecgboot积木报表存在未授权RCE漏洞,影响最新版v3.9.3。攻击者无需登录即可通过枚举报表ID并构造恶意请求,利用Aviator表达式引擎执行任意系统命令。文章提供临时缓解措施,建议企业排查暴露面并关注官方补丁。 综合评分: 72 文章分类: 漏洞分析,渗透测试,web安全
【已复现-24】JeecgBoot积木报表最新漏洞复现:无需登录即可RCE
原创
low洞百出 low洞百出
low洞百出
2026年9月1日 09:49 湖南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
免责声明:本公众号分享的日常渗透测试、网络安全及 SRC 漏洞挖掘相关文章,内容仅供学习交流与技术研究参考。严禁将文中技术、方法用于任何非法入侵、未授权测试、数据窃取等违法违规行为。若因擅自使用文章内容开展非法操作或传播文章,所引发的一切法律责任与经济损失,均由使用者自行承担,与本公众号及作者无关。如有内容侵权,请及时联系处理。
前言
在低代码开发浪潮席卷企业数字化转型的今天,JeecgBoot 凭借其“一键生成代码、快速搭建应用”的便捷特性,迅速在中小型企业内部系统中占据一席之地。无论是 OA 办公、项目管理,还是供应链协同,JeecgBoot 的身影都随处可见。
然而,效率与安全往往是一枚硬币的两面。低代码平台在极大缩短交付周期的同时,若安全设计稍有疏忽,其影响面也会被同步放大——一个隐藏的漏洞,可能让整个内网应用瞬间暴露在攻击者眼前。近期,JeecgBoot 及其报表模块 JimuReport 便被曝出一个未授权远程代码执行(RCE)漏洞,风险等级极高,且影响范围覆盖当前最新版本 v3.9.3。
漏洞复现
第一步:枚举报表ID
首先攻击者首先通过以下接口,批量获取系统内已存在的报表模板 ID。这一步至关重要,因为后续命令执行需要绑定一个有效的报表标识:
GET /jeecgboot/jmreport/excelQueryByTemplate?name=&pageNo=1&pageSize=10 HTTP/1.1Host: target-ip:portAccept: application/json
该接口无需认证,且返回结果中包含了报表的 id 字段。攻击者可通过调整 pageNo 与 pageSize 参数,一次性遍历出大量可用 ID,为下一步攻击储备“弹药”。
第二步:执行系统命令
获取到有效 id 后,攻击者向 /jeecgboot/jmreport/auto/export 接口发送精心构造的 POST 请求,“将弹药上膛进行发射”:
攻击原理:当 params 中的参数值以 = 开头时,系统会先移除所有等号,随后将剩余内容交由 Aviator 表达式引擎 执行。而该引擎并未禁用 use 关键字及静态方法调用,攻击者便借此链式调用 groovy.util.Eval.me(),最终实现任意操作系统命令的执行。
临时缓解措施:
1、拦截敏感路径:在WAF或网关侧拦截/jmreport/auto/export接口的匿名访问。
2、限制访问来源:将系统访问限制在可信IP范围内,避免暴露在公网。
3、网络隔离:将JeecgBoot系统部署在内网,不对外提供服务。
4、监控与告警:在日志系统中增加对 /jmreport/auto/export 接口的异常调用监控,重点关注 params 字段中包含 =、groovy、Eval、execute 等关键字的请求,及时触发安全告警。
总结
本次JeecgBoot未授权RCE漏洞危害极大——无需登录、无需任何权限即可远程执行系统命令,影响当前最新版v3.9.3。建议所有使用 JeecgBoot / JimuReport 的企业立即开展内部资产排查,确认是否存在公网暴露的报表服务,并尽快将上述临时缓解措施落地。同时,持续关注官方安全公告,待补丁发布后第一时间完成升级。
感谢关注,出货不迷路!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:low洞百出 low洞百出 low洞百出《【已复现-24】JeecgBoot积木报表最新漏洞复现:无需登录即可RCE》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论