积木报表导出接口 POST /jmreport/auto/export 标注了 @JimuNoLoginRequired,JimuReportTokenInterceptor 见到该注解直接放行;JeecgBoot ShiroConfig 又将 /jmreport/** 配成 anon。未登录即可进入导出流程。
导出 PDF 时,攻击者传入的 reportParams[].params 会进入 getBaseSql:queryJson.putAll(paramJson) 后对每个参数值调用 ExpressUtil.a。值以 = 开头时删除全部等号并交给 Aviator compile/execute。Aviator 仅 disableFeature(NewInstance),use 与静态方法仍可用。官方发行包 classpath 上的 groovy.util.Eval.me 可拉起操作系统进程(JeecgBoot 进程用户)。
与已公开问题的区别:CVE-2026-58375 / jimureport#4694 描述的是同一接口未授权导出报表数据;CVE-2026-36418 是 /jmreport/executeSelectApi 的 Aviator(该接口无 @JimuNoLoginRequired,无 Token 返回「Token校验失败」)。本文是 auto/export 匿名入口 + queryParam Aviator + Groovy 命令执行。
靶场地址:https://bdziyi.com/ulab/lab.html?page=target-detail&id=292






请登录后查看回复内容