文章总结: JeecgBoot<=3.9.3存在权限绕过与SQL注入组合高危漏洞。攻击者可利用Spring-Shiro路由匹配差异构造带后缀路径绕过JWT认证匿名访问受保护接口,再通过不带空格的SQL关键字(如select(version()))绕过黑名单过滤实现盲注脱库,高权限时还能读写文件。官方暂未修复,建议拦截相关接口匿名访问、强制JWT认证并启用更严格关键字或白名单过滤。 综合评分: 86 文章分类: 漏洞预警,漏洞分析,威胁情报,安全工具,解决方案
【高危漏洞预警】JeecgBoot权限绕过与SQL注入组合漏洞
飓风网络安全
2026年8月20日 22:59 北京
在小说阅读器读本章
去阅读
📌 漏洞简述:
JeecgBoot 是国内广泛使用的开源低代码快速开发平台,近期威胁情报监测发现 JeecgBoot 存在一条完整攻击链:
攻击者可以利用 Spring‑Shiro 路由后缀匹配差异,在不携带任何 Token 的情况下绕过 JWT 身份认证,直接访问受保护业务接口;
目标接口存在黑名单过滤缺陷,SQL注入防护仅匹配“关键字+空格”;不带空格的注入语句可以绕过安全检测,拼接至后端SQL语句执行。
链式利用最终可实现匿名布尔盲注脱库;如果数据库账号权限较高,可进一步读取文件、写入Webshell,造成服务器沦陷。
影响版本:
JeecgBoot <= 3.9.3
漏洞原理分析
1)第一链:权限绕过(认证绕过)
Shiro + SpringMVC 路由匹配存在差异:
正常接口:/sys/xxx/list 需要携带合法JWT Token;
攻击者访问:/sys/xxx/list;.js
Spring 依然路由到目标Controller;
Shiro过滤器匹配规则无法命中带后缀的路径,跳过登录校验,匿名访问后端接口。
2)第二链:SQL注入黑名单绕过
接口参数传入filterSql,后台调用SqlInjectionUtil注入过滤工具类。
黑名单正则写法缺陷:仅拦截 select (关键字后面带空格)。
Payload:select(version()),关键字后面紧跟括号不带空格,直接绕过黑名单;
最终参数拼接到MyBatis‑Plus apply(),直接执行恶意SQL片段,产生注入。
攻击链路:
匿名访问带后缀路径 → 绕过Shiro登录校验 → 传入绕过黑名单的恶意参数 → 后端执行SQL盲注 → 批量拖库
修复建议:
官方尚未发布修复补丁,建议关注 JeecgBoot GitHub/Gitee 官方版本更新。临时缓解措施:1. 在安全防护设备/网关/代理侧拦截 /sys/dict/getDictItems/\* 接口的匿名访问;2. 在 Shiro 过滤链中将 /sys/dict/getDictItems/\*\* 强制设为 JWT 认证,并置于静态资源匿名放行规则(/\*\*/\*.js 等)之前;3. 对该接口的 filterSql 参数启用更严格的 SQL 注入关键字检测与过滤,建议采用白名单校验,仅允许简单的字段比较表达式。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:飓风网络安全 《【高危漏洞预警】JeecgBoot权限绕过与SQL注入组合漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论