前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[CVE-2021-26085] Confluence /s/路径的信息泄露(受限)

[CVE-2021-26085] Confluence /s/路径的信息泄露(受限)

作者头像
C4rpeDime
发布2021-09-07 10:57:38
3K0
发布2021-09-07 10:57:38
举报
文章被收录于专栏:黑白安全黑白安全

漏洞描述

未经认证的攻击者可访问Confluence的WEB-INF和META-INF目录下的任意文件(包括可能的凭据信息)。这个漏洞我理解是CVE-2020-29448补丁的绕过;跟CVE-2019-3394的危害程度一样,最大可能的危害是读取可能存在的atlassian-user.xml文件(泄露LDAP凭据但这种配置方式已被弃用),但是不需要认证。

漏洞详情

/s/路径是Atlassian产品通用的访问静态资源的方法。

Confluence有一个正则

代码语言:javascript
复制
private static final Pattern CACHE_PATTERN = Pattern.compile("^/s/(.*)/_/((?i)(?!WEB-INF)(?!META-INF).*)");

用于避免WEB-INF和META-INF目录下文件被读取。

CVE-2020-29448的作者发现可以通过url编码绕过这个正则,实现WEB-INF和META-INF目录下的文件读取。

Atlassian修复它的方式是在进行正则判断前,对payload先url解码。

但是我发现可以通过两次url编码来绕过,于是提交给了Atlassian官方,不过看这个CVE-2021-26085的官方页面,好像CVE-2020-29448的作者也发现了?

这次Atlassian的修复方式是用一个for循环判断只要uri还可以被解码就继续解码。

代码语言:javascript
复制
   private String decodeURL(String url) {
        String decodedUri;
        for(decodedUri = HtmlUtil.urlDecode(url); HtmlUtil.shouldUrlDecode(decodedUri); decodedUri = HtmlUtil.urlDecode(decodedUri)) {
        }

        return decodedUri;
    }

影响版本

[ ,7.4.10) 

[7.5.0, 7.12.3)

漏洞演示

参考

  • https://jira.atlassian.com/browse/CONFSERVER-67893
  • https://nvd.nist.gov/vuln/detail/CVE-2021-26085
  • https://nvd.nist.gov/vuln/detail/CVE-2020-29448
  • https://nvd.nist.gov/vuln/detail/CVE-2019-3394

相似的Jira的信息泄露参考 陈师傅的知识星球:

https://t.zsxq.com/bAaiUfa

文由shadowsock7

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档