当前位置:网站首页>高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告
高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告
2022-08-06 05:22:00 【Fortinet_CHINA】
通告信息
近日,Volexity(volexity.com,以下简称为:Volexity)在对从Confluence Server系统收集到的数据进行彻底审查后,发现了攻击者启动Exp以实现远程代码执行,随后Volexity重新创建了该漏洞的利用并在最新版本的Confluence Server上进行了复现,于 2022 年 5 月 31 日联系 Atlassian 报告相关细节。Atlassian 已确认该漏洞,并上报给CVE,确认漏洞编号为“ CVE-2022-26134。它已被确认适用于当前版本的 Confluence Server 和 Data Center。
此漏洞同之前爆出的相关漏洞极度相似,同样也被利用以获得远程代码的执行,
所以对其判断为“高危”漏洞,漏洞威胁等级(严重),CVSS评分10.0。
攻击者需要向Confluence Server发送Web请求,就可以在没有服务器相关凭证的情况下,完全对服务器进行控制。
Fortinet 中国安全团队针对此次漏洞信息,进行即时响应并成功验证。漏洞威胁等级(严重)。对此,Fortinet建议广大用户及时进行预防工作,升级到安全版本,并做好资产自查,同时,对已经购买Fortinet产品的用户,建议升级到最新的特征库版本,用于防护此漏洞的相关攻击请求。
漏洞编号 | CVE-2022-26134 |
影响 | 未授权状态下执行远程代码 |
严重性级别 | 严重 |
受影响的平台 | 所有受支持版本的Confluence Server and Data Center |
Confluence Server and Data Center 1.3.0 之后的版本 | |
受影响的版本 | Atlassian Confluence Server and Data Center < 7.4.17 7.5.0 ≤ Atlassian Confluence Server and Data Center < 7.13.7 7.14.0 ≤ Atlassian Confluence Server and Data Center < 7.14.3 7.15.0 ≤ Atlassian Confluence Server and Data Center < 7.15.2 7.16.0 ≤ Atlassian Confluence Server and Data Center < 7.16.4 7.17.0 ≤ Atlassian Confluence Server and Data Center < 7.17.4 7.18.0 ≤ Atlassian Confluence Server and Data Center < 7.18.1 |
漏洞复现过程
一、准备环境:
系统环境:Windows或者Linux均可,需要Docker环境,本示例中采用已安装Docker环境的Kali系统。具体Docker的安装步骤请自行搜索,不作过多阐述。
攻击复现概述:本次攻击主要采用使用BurpSuite/Python脚本发送具有恶意负载的HTTP请求,形成远程代码执行,全程不需要任何使用任何服务器登录凭证。
1、新建一个docker-compose.yml,内容如下:

2、启动一个Confluence Server 7.13.6

3、环境启动后,访问
http://your-ip:8090
会进入安装引导,会要求填写license key。点击“Get an evaluation license”,去Atlassian官方申请一个Confluence Server的测试证书:
License激活界面
点击Generate License:

复制License Key部分的内容粘贴到下图的框中:

选择部署模式为Standlone,至此完成了激活操作,下一步开始初始化安装

部署模式选择界面
4、下一步,设置数据库信息的页面,PostgreSQL数据库地址为db,数据库名称confluence,用户名密码均为postgres。

根据相应内容填入数据库信息
5、选择 “Example Site”

新建“Example Site”
6、管理员创建如下图:

选择“Manage users and groups within Confluence”

填入管理员信息
7、下一步,完成服务器搭建

二、攻击复现:
三、脚本执行攻击成功的截图如下

漏洞分析
整个漏洞形成的主要原因是攻击者向Confluence Server 系统发出 Web 请求,而系统中存在了OGNL注入漏洞1,使得HTTP请求中的URL参数会被传递到服务器中被执行。具体的分析如下:
1、通过动态调试,追踪
HttpServlet.service到
OgnlValueStack.findValue
及之后的OGNL注入,我们可以看到当HTTP发起后的调试信息:

OgnlValueStack.findValue
2、如下图所示。由于TextParseUtil.class类中调用了上图中的OgnlValueStack.findValue,从而通过注入此类来完成后续的漏洞攻击。

TextParseUtil.class类调用OgnlValueStack.findValue变量
3、进一步进行分析,分析ActionChainResult.class中,注意到引入了变量
TextParseUtil.translateVaribles,
并通过this.namespace这个成员变量进行参数传递。

ActionChainResult.class 引用变量
4、 “namespace”
通过
getNamespaceFromServletPath函数
提取HTTP中的URL数据进行创建,从而形成OGNL表达式注入,如下图所示:

getNamespaceFromServletPath函数
释1:OGNL可以访问静态方法、属性以及对象方法等,其中包含可以执行恶意操作如命令执行的类java.lang.Runtime等,当OGNL表达式外部可控时,攻击者就可以构造恶意的OGNL表达式来让程序执行恶意操作,这就是OGNL表达式注入漏洞
漏洞分析参考链接:
https://attackerkb.com/topics/BH1D56ZEhs/cve-2022-26134/rapid7-analysis
整体的攻击流程图如下:

漏洞修复方法
1、建议对 Confluence 组件进行集中升级到安全版本,下载地址为:
https://www.atlassian.com/software/confluence/download-archives
2、考虑到业务连续性和对威胁可见性的管理要求,建议采用Fortinet产品解决方案防护Confluence 零日攻击,同时Fortinet对已购买相关产品的用户已推送了相关的特征库,用于防护来自此漏洞的相关攻击。
FortiGate IPS模块防护漏洞截图:

防火墙IPS模块对此攻击进行了阻断,并形成相关攻击日志

FortiWeb防护漏洞截图:

脚本攻击前后攻击对比:
未使用Fortinet解决方案前:

使用Fortinet解决方案后,漏洞执行行为被阻断:

如需帮助,敬请拨打电话或发送邮件联系我们:
010-62960376 转1
边栏推荐
猜你喜欢

Flume基础

GameFramework.ObjectPoolManager 详解

GameFramework.DataTable 详解

Ankerui, an energy IoT data service platform based on IoT technology-Susie Zhou

C Shap 如何唯一确定一个类,当多个程序集具有相同的全名类时,避免冲突或意外的替换。

编写一个函数reverse_string(char*string)

MiniFlow -- 10.简单的实现梯度下降

监听APP中每个Activity的生命周期

Acrel-EIoT Energy IoT Cloud Platform Empowers Power IoT Data Services - Susie Week

STM32 ADC转换速度与精度
随机推荐
The application of Ankerui's prepaid platform in power supply-Susie Week
一句话总结Unity物体渲染先后顺序
GameFramework 框架 Resource 详解
[C语言] 自制的贪吃蛇游戏
MiniFlow -- 1.什么是神经网络
3.5 动态定位shellcode
集群,分布式,微服务区别和联系
【Writing】Master's thesis
Ankerui, an energy IoT data service platform based on IoT technology-Susie Zhou
热修复、插件化、组件化的区别
Ankerui DTSD1352-10(80)A Straight-through Wiring Instructions and Precautions-Susie Zhou
Ankerui DTSD/ADL400 Communication Protocol Description-Susie Week
【Server related】
明白.net中的垃圾回收机制
Qt 调用C#编写的dll
【STM32F4系列】【HAL库】【自制库】RDA5807M收音机芯片驱动
darknet代码注释--1.激活函数
5.1 主机扫描:路由信息的收集
求二进制中 1 的个数的几个解法
MDK Debug prompts No ULINK/ME Device found after selecting JLINK