JEEWMS-SQL注入(CVE-2025-0392)和权限绕过(CVE-2024-5775)漏洞分析
字数 2033 2025-08-29 08:30:05

JEEWMS漏洞分析与利用教学文档

1. JEEWMS系统简介

JeeWMS是基于Java全栈技术打造的智能仓储中枢系统,具备多形态仓储场景深度适配能力(兼容3PL第三方物流与厂内物流双模式)。系统通过PDA智能终端与WEB管理平台双端协同,构建了涵盖仓储管理(WMS)、订单协同(OMS)、财务结算(BMS)、运输调度(TMS)的全链路数字化解决方案。

2. SQL注入漏洞分析(CVE-2025-0392)

2.1 漏洞位置

漏洞存在于graphReportController.do接口,具体路径为:

  • org/jeecgframework/web/graphreport/controller/GraphReportController.java:303

2.2 漏洞触发条件

路由graphReportController必须包含datagridGraph参数时,会调用执行datagridGraph方法。

2.3 漏洞详细分析

  1. 参数传递流程

    • CgReportQueryParamUtil工具类处理查询参数的加载逻辑
    • loadQueryParams()方法动态加载并封装查询条件参数
    • item对象中获取filedName的值并强制转换成字符串
    • 用户端传入的参数store_code被传递给filedName
  2. 关键处理点

    • org/jeecgframework/core/online/util/CgReportQueryParamUtil.java:44:参数值传递给value字符串
    • org/jeecgframework/core/online/util/CgReportQueryParamUtil.java:49:从用户端获取所有数据并传递给uri字符串
    • 简单判断value参数值是否带有"*"后,直接拼接存入queryparams
  3. SQL拼接执行

    • queryparams传递给graphReportService.queryByCgReportSql()方法
    • 参数值与SQL语句传给handleElInSQL()方法生成新SQL
    • 新SQL传给getFullSql()方法进行简单判断后直接拼接
    • 最终在JdbcDao.java:149直接拼接SQL查询语句执行

2.4 漏洞本质

整个过程中没有对参数进行过滤或转义,store_code参数可控,导致SQL注入漏洞。

2.5 漏洞复现

可以使用sqlmap工具进行复现,构造特定的store_code参数值实现注入。

3. 权限绕过漏洞分析(CVE-2024-5775)

3.1 漏洞位置

漏洞存在于权限校验拦截器中:

  • org/jeecgframework/core/interceptors/AuthInterceptor.java:85

3.2 漏洞原理

  1. 拦截器逻辑

    • 模糊查询判断requestPath参数路径是否包含在excludeContainUrls数组变量里
    • 如果包含就直接返回true,绕过权限检查
  2. 关键方法

    • moHuContain()方法将接收的参数keylist列表参数逐个比较
    • list中包含wmOmNoticeHController.do等三个参数
    • keylist列表的某一个参数时,直接返回,无其他过滤

3.3 漏洞利用

构造特殊路由,在路径中包含白名单参数即可绕过登录:

  • 例如:wmOmNoticeHController.do/../
  • 无需登录即可直接访问后台接口,获取敏感数据

3.4 影响范围

所有包含以下参数的路径均可绕过:

  1. wmOmNoticeHController.do
  2. 其他两个未明确命名的参数(根据描述存在但未具体说明)

4. 漏洞修复建议

4.1 SQL注入漏洞修复

  1. 使用预编译语句(PreparedStatement)替代字符串拼接
  2. 对用户输入的store_code参数进行严格过滤和转义
  3. 实现参数化查询,避免直接拼接SQL

4.2 权限绕过漏洞修复

  1. 修改AuthInterceptor拦截器逻辑,取消模糊匹配
  2. 实现精确路径匹配而非包含匹配
  3. 对白名单路径进行严格校验,防止路径遍历绕过
  4. 添加额外的权限校验层

5. 漏洞利用扩展

  1. SQL注入

    • 可尝试其他参数的注入点
    • 结合系统功能进行更复杂的注入攻击
  2. 权限绕过

    • 尝试其他路径组合方式
    • 测试其他可能存在的白名单参数
    • 结合路径遍历技术访问更深层次的接口

6. 总结

本文详细分析了JEEWMS系统中的两个高危漏洞:

  1. SQL注入漏洞(CVE-2025-0392):由于参数未过滤直接拼接SQL导致
  2. 权限绕过漏洞(CVE-2024-5775):由于拦截器模糊匹配逻辑缺陷导致

这两个漏洞均可被攻击者利用获取系统敏感数据或未授权访问,建议用户及时升级修复。

JEEWMS漏洞分析与利用教学文档 1. JEEWMS系统简介 JeeWMS是基于Java全栈技术打造的智能仓储中枢系统,具备多形态仓储场景深度适配能力(兼容3PL第三方物流与厂内物流双模式)。系统通过PDA智能终端与WEB管理平台双端协同,构建了涵盖仓储管理(WMS)、订单协同(OMS)、财务结算(BMS)、运输调度(TMS)的全链路数字化解决方案。 2. SQL注入漏洞分析(CVE-2025-0392) 2.1 漏洞位置 漏洞存在于 graphReportController.do 接口,具体路径为: org/jeecgframework/web/graphreport/controller/GraphReportController.java:303 2.2 漏洞触发条件 路由 graphReportController 必须包含 datagridGraph 参数时,会调用执行 datagridGraph 方法。 2.3 漏洞详细分析 参数传递流程 : CgReportQueryParamUtil 工具类处理查询参数的加载逻辑 loadQueryParams() 方法动态加载并封装查询条件参数 从 item 对象中获取 filedName 的值并强制转换成字符串 用户端传入的参数 store_code 被传递给 filedName 关键处理点 : org/jeecgframework/core/online/util/CgReportQueryParamUtil.java:44 :参数值传递给 value 字符串 org/jeecgframework/core/online/util/CgReportQueryParamUtil.java:49 :从用户端获取所有数据并传递给 uri 字符串 简单判断 value 参数值是否带有"* "后,直接拼接存入 queryparams SQL拼接执行 : queryparams 传递给 graphReportService.queryByCgReportSql() 方法 参数值与SQL语句传给 handleElInSQL() 方法生成新SQL 新SQL传给 getFullSql() 方法进行简单判断后直接拼接 最终在 JdbcDao.java:149 直接拼接SQL查询语句执行 2.4 漏洞本质 整个过程中没有对参数进行过滤或转义, store_code 参数可控,导致SQL注入漏洞。 2.5 漏洞复现 可以使用sqlmap工具进行复现,构造特定的 store_code 参数值实现注入。 3. 权限绕过漏洞分析(CVE-2024-5775) 3.1 漏洞位置 漏洞存在于权限校验拦截器中: org/jeecgframework/core/interceptors/AuthInterceptor.java:85 3.2 漏洞原理 拦截器逻辑 : 模糊查询判断 requestPath 参数路径是否包含在 excludeContainUrls 数组变量里 如果包含就直接返回 true ,绕过权限检查 关键方法 : moHuContain() 方法将接收的参数 key 和 list 列表参数逐个比较 list 中包含 wmOmNoticeHController.do 等三个参数 当 key 是 list 列表的某一个参数时,直接返回,无其他过滤 3.3 漏洞利用 构造特殊路由,在路径中包含白名单参数即可绕过登录: 例如: wmOmNoticeHController.do/../ 无需登录即可直接访问后台接口,获取敏感数据 3.4 影响范围 所有包含以下参数的路径均可绕过: wmOmNoticeHController.do 其他两个未明确命名的参数(根据描述存在但未具体说明) 4. 漏洞修复建议 4.1 SQL注入漏洞修复 使用预编译语句(PreparedStatement)替代字符串拼接 对用户输入的 store_code 参数进行严格过滤和转义 实现参数化查询,避免直接拼接SQL 4.2 权限绕过漏洞修复 修改 AuthInterceptor 拦截器逻辑,取消模糊匹配 实现精确路径匹配而非包含匹配 对白名单路径进行严格校验,防止路径遍历绕过 添加额外的权限校验层 5. 漏洞利用扩展 SQL注入 : 可尝试其他参数的注入点 结合系统功能进行更复杂的注入攻击 权限绕过 : 尝试其他路径组合方式 测试其他可能存在的白名单参数 结合路径遍历技术访问更深层次的接口 6. 总结 本文详细分析了JEEWMS系统中的两个高危漏洞: SQL注入漏洞(CVE-2025-0392) :由于参数未过滤直接拼接SQL导致 权限绕过漏洞(CVE-2024-5775) :由于拦截器模糊匹配逻辑缺陷导致 这两个漏洞均可被攻击者利用获取系统敏感数据或未授权访问,建议用户及时升级修复。