Confluence 未授权 RCE (CVE-2019-3396) 漏洞分析

本文详细分析了Confluence的未授权远程代码执行(RCE)漏洞(CVE-2019-3396),涉及Widget Connector组件中的服务端模板注入。通过研究补丁,作者发现攻击者可能利用此漏洞进行目录穿越和RCE。漏洞关键在于Template_param参数,允许外部传入模板路径。经过调试和测试,发现在某些版本中,利用file://或特定协议可以绕过目录限制,实现本地和远程模板加载,从而执行命令。文章还提到了漏洞影响范围和检测方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到官方发布了预警,于是开始了漏洞应急。漏洞描述中指出Confluence Server与Confluence Data Center中的Widget Connector存在服务端模板注入漏洞,攻击者能利用此漏洞能够实现目录穿越与远程代码执行。
在这里插入图片描述
确认漏洞点是Widget Connector,下载最新版的比对补丁,发现在com\atlassian\confluence\extra\widgetconnector\WidgetMacro.java里面多了一个过滤,这个应该就是这个漏洞最关键的地方。
在这里插入图片描述
可以看到

this.sanitizeFields =
Collections.unmodifiableList(Arrays.asList(VelocityRenderService.TEMPLATE_PARAM));

而TEMPLATE_PARAM的值就是_template,所以这个补丁就是过滤了外部传入的_template参数。

public interface VelocityRenderService { public static final String
WIDTH_PARAM = “width”; public static final String HEIGHT_PARAM =
“height”; public static final String TEMPLATE_PARAM = “_template”;

翻了一下Widget Connector里面的文件,发现TEMPLATE_PARAM就是模板文件的路径。

public class FriendFeedRenderer implements WidgetRenderer { private
static final String MATCH_URL = “friendfeed.com”; private static
final String PATTERN = "friendfeed.com/(\w+)/?"; private static
final String VELOCITY_TEMPLATE =
“com/atlassian/confluence/extra/widgetconnector/templates/simplejscript.vm”;

private VelocityRenderService velocityRenderService; …
public String getEmbeddedHtml(String url, Map<String, String> params)
{
params.put(VelocityRenderService.TEMPLATE_PARAM, VELOCITY_TEMPLATE);
return velocityRenderService.render(getEmbedUrl(url), params); }

加载外部的链接时,会调用相对的模板去渲染,如上,模板的路径一般是写死的,但是也有例外,补丁的作用也说明有人突破了限制,调用了意料之外的模板,从而造成了模板注入。

在了解了补丁和有了一些大概的猜测之后,开始尝试。

首先先找到这个功能,翻了一下官方的文档,找到了这个功能,可以在文档中嵌入一些视频,文档之类的。
在这里插入图片描述
看到这个,有点激动了,因为在翻补丁的过程中,发现了几个参数,url,width,height正好对应着这里,那_template是不是也从这里传递进去的?

随便找个Youtube视频插入试试,点击预览,抓包。
在这里插入图片描述
在params中尝试插入_template参数,好吧,没啥反应。。
在这里插入图片描述
开始debug模式,因为测试插入的是Youtube视频,所以调用的是com/atlassian/confluence/extra/widgetconnector/video/YoutubeRenderer.class

public class YoutubeRenderer implements WidgetRenderer,
WidgetImagePlaceholder { private static final

### CVE-2019-3396 漏洞详情 CVE-2019-3396 是 Atlassian Confluence Server 和 Data Center 中的一个严重远程代码执行 (RCE) 漏洞。该漏洞存在于服务器端模板引擎中,攻击者可以通过精心构造的请求利用此漏洞,在受影响的应用程序上实现任意命令执行。 #### 影响范围 - **产品**: Atlassian Confluence Server 和 Data Center - **版本影响**: - 版本 5.6.0 到 5.10.14 - 版本 6.0.0 到 6.6.12 - 版本 6.7.0 到 6.15.8[^1] #### 安全风险评估 由于该漏洞允许未经身份验证的攻击者通过网络发送特制的数据包来触发 RCE 条件,因此被评定为高危级别。如果成功利用,则可能导致完全控制系统的能力,进而造成数据泄露或其他恶意活动。 ```bash # 示例:检测是否存在易受攻击版本的方法之一 curl -X GET "http://example.com/confluence/rest/api/serverInfo" ``` 上述命令可以用来获取目标系统的版本信息以便确认其是否位于已知脆弱范围内。 ### 解决方案与缓解措施 针对这一安全问题,官方已经发布了补丁更新: - 用户应尽快升级到最新稳定版以修复此漏洞- 对于无法立即升级的情况,建议采取临时性的防护策略,比如限制对 Confluence 的访问权限仅限内部可信 IP 地址;关闭不必要的功能模块和服务接口等。 此外,在 Vulfocus 平台上也可以找到关于如何设置实验环境以及测试该漏洞的具体指导文档和支持资源,帮助研究人员更好地理解和防范此类安全隐患。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值