CVE-2022-26134 Confluence OGNL RCE 漏洞分析
字数 2276 2025-08-27 12:33:37
CVE-2022-26134 Confluence OGNL RCE 漏洞分析与利用指南
漏洞概述
CVE-2022-26134是Atlassian Confluence Server和Data Center中的一个严重远程代码执行漏洞,允许未经身份验证的攻击者通过构造特定的OGNL表达式实现任意代码执行。
影响版本
- 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
环境搭建
使用Docker搭建测试环境
-
使用docker-compose文件启动环境:
docker-compose up -d -
查看容器ID和相关信息(5050为远程调试端口)
-
将容器中的Confluence源码复制到本地:
docker cp <container_id>:/opt/atlassian/confluence /local/path
配置IDEA调试环境
-
将以下目录添加为依赖文件:
/confluence/WEB-INF/atlassian-bundled-plugins/confluence/WEB-INF/atlassian-bundled-plugins-setup/confluence/WEB-INF/lib
-
修改容器中的
/opt/atlassian/confluence/bin/setenv.sh文件,添加远程调试配置 -
访问
http://IP:8090进行初始配置(需要Confluence官网证书)
漏洞分析
请求处理流程
- 访问
/login.action等端点 - 请求经过一系列Filter处理
- 进入Servlet分发器:
com.opensymphony.webwork.dispatcher.ServletDispatcher
关键函数分析
-
ServletDispatcher通过以下函数获取值:getNameSpacegetActionNamegetRequestMapgetSessionMapgetApplicationMap
-
getNamespace函数分析:- 调用
com.atlassian.plugin.servlet.PluginHttpRequertWrapper#getServletPath获取servletPath - 进入
getNamespaceFromServletPath函数 - 通过字符串截取,namespace取值为请求servletPath最后一个"/"之前的部分
- 调用
-
执行流程:
com.opensymphony.webwork.dispatcher.ServletDispatcher#serviceActioncom.opensymphony.xwork.DefaultActionProxy#executecom.opensymphony.xwork.DefaultActionlnvocation#invokecom.opensymphony.xwork.interceptor.Aroundlnterceptor#intercept
-
OGNL表达式解析:
com.opensymphony.xwork.ActionChainResult#execute获取namespace值translateVariables函数解析OGNL表达式com.opensymphony.xwork.util.TextParseUtil#translateVariablescom.opensymphony.xwork.util.OgnlValueStack#findValue最终解析表达式
漏洞复现
基本利用
使用payload格式:/${OGNL表达式}/
例如:/${4*4}/ 将返回16,证明OGNL表达式被执行
命令执行
构造特定的OGNL表达式可实现任意命令执行,例如:
/${@java.lang.Runtime@getRuntime().exec("whoami")}/
修复建议
-
升级到安全版本:
- 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
沙箱绕过分析(v7.15+)
从v7.15开始,Confluence在OGNL解析中加入了沙箱限制:
- 采用黑名单和白名单机制
- 限制为静态方法调用
- 绕过技巧:
- 利用白名单中允许的静态方法
- 利用沙箱逻辑缺陷实现方法调用
参考材料
-
Rapid7分析:
https://attackerkb.com/topics/BH1D56ZEhs/cve-2022-26134/rapid7-analysis -
Tarlogic分析:
https://www.tarlogic.com/blog/cve-2022-26134-zero-day-vulnerability-affecting-atlassian-confluence/