CVE-2019-3395:[Confluence] SSRF via WebDAV endpoint

当时看这个Atlassian官方安全公告的时候,好像大家关注的主要是3396,而忽略了3395。而且到目前为止,除了官方的描述,网上没有关于这个漏洞的更多描述。
在这里插入图片描述
而且NVD上也是有9.8的高分
在这里插入图片描述
这个漏洞没有3396那样影响那么广的版本。根据官方描述,它的影响范围是:

  • version < 6.6.7
  • 6.7.0 <= version < 6.8.5(6.8.x的修复版)
  • 6.9.0 <= version < 6.9.3(6.9.x的修复版)

WebDAV Plugin介绍

This plugin provides a WebDAV interface to Confluence. With it, you can interact with Confluence content via a WebDAV client.

参考:https://ecosystem.atlassian.net/wiki/spaces/WBDV/overview
在这里插入图片描述
在这里插入图片描述
在6.0.x上并没有发现这个功能,后来看官方文档才知道原来6.1.x才有。
6.0.x需要去附件那里编辑。
在IDE中运行的时候需要加上这个参数:

-Dwebdav.host=localhost -Dhttp.port=8080 -Dwebdav.port=8080 -Dwebdav.context=confluence -Dwebdav.resource.path.prefix=/plugins/servlet/confluence/default

参考:
https://bitbucket.org/atlassian/confluence-webdav-plugin/src/master/

参考:
http://confluence.gjingao.com/pages/viewpage.action?pageId=327983
意思应该是本地写好之后自动上传?
参考:
https://confluence.atlassian.com/conf613/edit-files-964960723.html

需要下载一个client:
Mac版:
https://update-nucleus.atlassian.com/Atlassian-Companion/291cb34fe2296e5fb82b83a04704c9b4/darwin/x64/Atlassian%20Companion-0.6.2.dmg
Windows:
https://update-nucleus.atlassian.com/Atlassian-Companion/291cb34fe2296e5fb82b83a04704c9b4/latest/win32/ia32/Atlassian%20Companion.exe

跟踪

定位到插件所在jar包。

➜  atlassian-confluence-6.0.6 find . -name *.jar|grep webdav
./confluence/WEB-INF/atlassian-bundled-plugins/webdav-plugin-4.3.1.jar

缓解措施

官方说可以禁用这个插件以缓解这个漏洞,然后有评论说在系统插件管理中禁用之后,重启依然又开启了。
在这里插入图片描述

注意事项

  • 禁用WebDAV插件也会禁用Office Connector插件:

Due to a security advisory it is required to disable WebDAV add-on in case if the instance cannot be upgraded. During the disabling, the Office Connector add-on will also be disabled (viewxls macro will not work) as this is linked requirement of WebDAV add-on. Enabling Office Connector will also enable WebDAV add-on.

  • 在WebDAV的通信过程中有大量的PROPFIND HTTP方法,
PROPFIND /plugins/servlet/confluence/default/Global/ds/%E6%9C%AA%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6%E5%A4%B9/ HTTP/1.1
Host: cqq.com:8090
Content-Type: text/xml
User-Agent: </userAgent>xxxx<userAgent>
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 186

<?xml version="1.0" encoding="utf-8"?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:getlastmodified/>
<D:getcontentlength/>
<D:creationdate/>
<D:resourcetype/>
</D:prop>
</D:propfind>

那么这个方法是做什么用的呢?
参考:
What is HTTP Method PROPFIND used for?

Web Distributed Authoring and Versioning (WebDAV) is an extension of the Hypertext Transfer Protocol (HTTP) that facilitates collaboration between users in editing and managing documents and files stored on World Wide Web servers.
PROPFIND — used to retrieve properties, stored as XML, from a web resource. It is also overloaded to allow one to retrieve the collection structure (a.k.a. directory hierarchy) of a remote system.

WebDAV协议是对HTTP协议的一种扩展。PROPFIND方法用来从WEB资源中获取XML形式的属性,也用来拿到远端某个目录的结构。

使用WebDAV客户端的好处是可以批量操作:批量删除、批量添加附件。
参考:https://confluence.atlassian.com/doc/use-a-webdav-client-to-work-with-pages-200704169.html

新建目录:

MKCOL /plugins/servlet/confluence/default/Global/ds/hhh_dir2 HTTP/1.1
Host: cqq.com:8090
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 0
Connection: close


在这里插入图片描述
查看confluence发现已经生成了新目录。
在这里插入图片描述
移动目录:

MOVE /plugins/servlet/confluence/default/Global/ds/hhh_dir2/ HTTP/1.1
Host: cqq.com:8090
Accept: */*
Destination: http://cqq.com:8090/plugins/servlet/confluence/default/Global/ds/hhh_dir2_new
Authorization: Basic YWRtaW46YWRtaW4=
Connection: close

在这里插入图片描述
confluence上已经修改了:
在这里插入图片描述
参考:
https://tools.ietf.org/html/rfc4918#section-9.3

查看这个WebDAV服务支持哪些方法:

OPTIONS /plugins/servlet/confluence/default/ HTTP/1.1
Host: cqq.com:8090
User-Agent: 37110.py
Connection: close
Authorization: Basic Y3FxOmNxcQ==

注意必须加path和Authorization信息。
在这里插入图片描述

有人猜测WebDAV实际是Office的Edit in Office的支撑功能。也就是说在使用Edit in Office功能的时候,背后用到了WebDAV协议来进行通信。
在这里插入图片描述

参考:
https://jira.atlassian.com/browse/CONFSERVER-58070

往目录写文件:

PUT /plugins/servlet/confluence/default/Global/ds/new_dir/test_confl7.txt HTTP/1.1
Host: cqq.com:8090
User-Agent: WebDAVFS/3.0.0 (03008000) Darwin/17.7.0 (x86_64)
Authorization: Basic Y3FxOmNxcQ==
Content-Length: 20
Connection: close

whatever content

在网上发现webdav插件的git仓库:
https://bitbucket.org/atlassian/confluence-webdav-plugin/
clone下来看一下:
在这里插入图片描述
找到一个特殊的分支,看着这个时间和漏洞披露的时间,应该是用来专门解决这个Confluence的SSRF的。

参考

  • https://jira.atlassian.com/browse/CONFSERVER-58070
  • https://jira.atlassian.com/browse/CONFSERVER-57971
  • https://confluence.atlassian.com/doc/use-a-webdav-client-to-work-with-pages-200704169.html
  • https://confluence.atlassian.com/doc/configuring-a-webdav-client-for-confluence-148044.html
  • https://bitbucket.org/atlassian/confluence-webdav-plugin/commits/branch/issue/CONFSERVER-57488-pre-auth-ssrf?page=1
  • https://bitbucket.org/atlassian/confluence-webdav-plugin/commits/701ef5f60d1aceaa33f276ec95728a4c126208c5?at=issue/CONFSERVER-57488-pre-auth-ssrf
  • https://bitbucket.org/atlassian/confluence-webdav-plugin/commits/b338cd29bd01fc90c3637525c1a17eede02e079c
  • https://www.exploit-db.com/exploits/37110

https://freewechat.com/profile/MzU5NDgxODU1MQ==

发布了601 篇原创文章 · 获赞 101 · 访问量 100万+

猜你喜欢

转载自blog.csdn.net/caiqiiqi/article/details/103046274