概述
通告信息
近日,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
最后
以上就是无情大叔为你收集整理的高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告的全部内容,希望文章能够帮你解决高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复