Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)

1. 前言
官方公告:
https://confluence.atlassian.com/security/cve-2023-22515-broken-access-control-vulnerability-in-confluence-data-center-and-server-1295682276.html
漏洞描述:
外部攻击者可能利用可公开访问的 Confluence 数据中心和服务器实例中的先前未知的漏洞来创建未经授权的 Confluence 管理员帐户并访问 Confluence 实例。
影响版本:
  • < 8.0.5
  • < 8.1.5
  • < 8.2.4
  • < 8.3.3
  • < 8.4.3
  • < 8.5.2
8.0.0版本之前不受影响。
2. 环境搭建
从 atlassian 官网下载漏洞版本的 confluence 安装包,Windows 下载 exe 进行安装;
https://www.atlassian.com/software/confluence/download-archives
启动 confluence 服务后,访问http://localhost:8090进入安装步骤,选择Trial InstallationConfluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
需要申请一个许可证,点击Get an evaluation license,选择Confluence (Data Center),获取一个免费试用的许可证,复制过来;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
然后选择“非集群”,进入创建数据库的步骤;MySQL 数据库需要单独下载驱动;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
点击下载地址,选择最新的驱动版本下载;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
然后将下载的mysql-connector-j-8.2.0.jar复制到/AtlassianConfluenceconfluenceWEB-INFlib目录下,重启 Confluence 服务即可配置 Mysql。
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
需要修改一些 mysql 的配置参数,参考官方 MySQL 数据库配置:https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html
一直跟着按照流程走就是,选择Empty Site
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)          
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)    
创建管理员;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
安装成功。
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
参考链接:
https://andblog.cn/2655
https://l4yn3.github.io/2019/04/20/Confluence-漏洞分析环境搭建/
3. 漏洞分析
diff 一下 confluence 8.5.1 和 8.5.2 的 jar 包,可以看到删除了SeverInfoAction.classServerInfoFilter.class,新增了ReadOnlyApplicationConfig.classReadOnlySetupPersister.class
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
两个 ReadyOnly 的类中,都对 setter 方法抛出了 UnsupportedOperationException 异常,字面意思就是不允许的操作异常;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
ReadOnlyApplicationConfig 和 ReadOnlySetupPersister 用在了 BootstrapStatusProviderImpl.class 中的getApplicationConfig()getSetupPersister(),猜测漏洞应该是跟 applicationconfig 和 setuppersister 变量有关。
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
根据官方公告的漏洞描述,利用漏洞可以创建未经授权的 Confluence 管理员账户,而创建管理员账户的步骤就在安装过程中进行的;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
对应的 action 地址是/setup/setupadministrator.action,由于我们已经安装过了,直接访问就会显示Setup is already complete  
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
confluenceWEB-INFlibcom.atlassian.confluence_confluence-8.5.1.jar!comatlassianconfluencecoreConfluenceActionSupport.propertie中,Setup is already complete这个字符串信息是赋给了setup.already.title变量;         
而在
setupalreadysetup.vm中使用了这个变量;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
在 struts.xml 中看到,alreadysetup.vm是 alreadysetup 结果的返回页面;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
在 SetupCheckInterceptor 拦截器中,存在返回 alreadysetup 的情况,前面两个方法结果都为 true 就返回 alreadysetup
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
先看一下isSetupComplete()方法,也就是说,这个方法的返回结果是跟bootstrapStatusProvider.applicationConfig.setupComplete变量值相关的,安装完成后这个值就为 true
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
那么如果能把bootstrapStatusProvider.applicationConfig.setupComplete的值改为 false,就可以重新进行安装步骤,从而创建新的管理员账户了。
看看新版本中被删除的 ServerInfoAction,好像没什么问题;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
再看看它的父类,ConfluenceActionSupport 有一个getBootstrapStatusProvider()方法,看名字有点用的感觉,其中实例化了BootstrapStatusProviderImpl 类;
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
跟进,在 BootstrapStatusProviderImpl 中有一个getApplicationConfig(),而 ApplicationConfig 中有setSetupComplete(),如果能调用这些 gettet/setter 方法,就成功了。
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
所以,要寻找能够调用getBootstrapStatusProvider().getApplicationConfig().setSetupComplete(false)的地方。
4. 漏洞复现
根据 Struts2 框架下 XWork 的特性,可以直接通过 HTTP 参数调用对象的 gettet/setter 方法;
向 URL 中传入参数
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false,返回 success
再访问
/setup/setupadministrator-start.action,就可以重新创建管理员账号了。
Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)
继承了 ConfluenceActionSupport 的 action 类都可以进行利用,只是请求方法有的有些不同。

参考链接:
https://cn-sec.com/archives/2177640.html 
https://exp10it.cn/2023/10/atlassian-confluence-cve-2023-22515-分析/

原文始发于微信公众号(中孚安全技术研究):Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515)

版权声明:admin 发表于 2023年11月30日 下午12:16。
转载请注明:Confluence 数据中心和服务器中的访问控制漏洞(CVE-2023-22515) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...