高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告

通告信息

近日,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 

BDR_cn@fortinet.com

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值