Headline
CVE-2023-34660: /jeecg-boot/jmreport/upload接口存在未授权任意文件上传 · Issue #4990 · jeecgboot/jeecg-boot
jjeecg-boot V3.5.0 has an unauthorized arbitrary file upload in /jeecg-boot/jmreport/upload interface.
版本号:
目前确定影响:3.5.0 & 3.5.1(其它版本未验证)
前端版本:vue3版?还是 vue2版?
vue3版
问题描述:
经测试发现/jeecg-boot/jmreport/upload接口存在未授权任意文件上传,可以上传html文件造成存储型的XSS。
截图&代码:
下载使用https://github.com/jeecgboot/jeecg-boot项目源代码启动项目后,
入口:“报表设计器”–>"新建报表"–>"插入图片"
抓取包,获得上传接口,下面证明任意文件上传的存在。
修改后缀为html,添加js代码
访问后,成功执行
尝试上传sh,上传成功
###源码分析
在org.jeecg.modules.jmreport.desreport.a包里面的a.java是一个controller;当做post请求/jeecg-boot/jmreport/upload的时候就会来到这个方法里面。
进行判断了之后,然后进入LOCAL方法,我们跟进去一直来到了a方法。这里只是做了“…/”的过滤。
然后调用getUpload()获取存储的路径,做了一系列的赋值之后,来到var8得到了最终的路径,然后通过new File传进var8的值,创建了新的文件,至此实现了任意文件类型的上传。
友情提示(为了提高issue处理效率):
- 未按格式要求发帖,会被直接删掉;
- 描述过于简单或模糊,导致无法处理的,会被直接删掉;
- 请自己初判问题描述是否清楚,是否方便我们调查处理;
- 针对问题请说明是Online在线功能(需说明用的主题模板),还是生成的代码功能;
Related news
jeecg-boot V3.5.0 has an unauthorized arbitrary file upload in `/jeecg-boot/jmreport/upload` interface.