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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Exploit-CVE-2023-22518 — CVE-2023-22518 在 Atlassian Confluence 中的漏洞利用。提供了该漏洞的详细演练,包括环境搭建、通过差异分析进行根因分析,以及获取管理员访问权限的利用步骤。 | Kitploit
工具/GitHubGitHub/lilly-dox/exploit-cve-2023-22518
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育实验室与实践
GitHublilly-dox/exploit-cve-2023-22518

Exploit-CVE-2023-22518

CVE-2023-22518 在 Atlassian Confluence 中的漏洞利用。提供了该漏洞的详细演练,包括环境搭建、通过差异分析进行根因分析,以及获取管理员访问权限的利用步骤。

查看仓库
12年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Exploit-CVE-2023-22518

CVE-2023-22518 在 Confluence 中

CVE-2023-22518:该漏洞被描述为“Confluence 数据库和服务器中授权不当的漏洞”。该错误影响 Atlassian 产品的本地部署(On-premises)版本。

设置环境 使用受影响版本 8.0.4 下载 URL: https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.0.4-x64.exe

1

选择 Trial Installation,然后点击链接获取免费试用密钥。然后设置集群:选择 non-cluster 2

然后进入数据库设置 -> 选择 MySQL

3

按照说明操作:

  1. 下载 MySQL 驱动
  2. 将 .jar 文件放到 /home/lily/atlassian/confluence/confluence/WEB-INF/lib
  3. 重启 Confluence 并继续设置过程。

4 配置数据库,创建用户和密码表

root@kitploit:~
CREATE DATABASE securedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'admin123'@'localhost' IDENTIFIED BY 'supersecure';
GRANT ALL PRIVILEGES ON securedb.* TO 'admin123'@'localhost';
GRANT SUPER ON *.* TO 'your_username'@'your_host';
FLUSH PRIVILEGES;

然后编辑 /etc/mysql/my.cnf。添加以下行:

root@kitploit:~
transaction-isolation = READ-COMMITTED
log_bin_trust_function_creators = 1

5

然后重启 MySQL 和 Confluence。然后访问 localhost:8090 的设置页面,并使用已创建的数据库填写。

6

检查连接是否成功,点击 Next。然后注册。

7

调试

*Diff 在 IntelliJ 中对比两个版本的 jar 文件。具体来说,我对比了 8.0.4 和 7.19.16 两个版本。根据描述,对比两个版本的 confluence.jar 文件。

image

已修补版本和未修补版本之间的区别在于 @WebSudoRequired 和 @SystemAdminOnly。 websudorequired 是一项用于增强管理员会话安全性的功能。当尝试访问 admin 时,即使你已经登录系统,系统也会要求重新输入密码。增加一个额外的身份验证步骤,以确保管理访问权限。

SystemAdminOnly:该功能将管理功能限制为仅限管理员账户。这有助于确保只有经过授权的账户才能执行重要且影响系统的操作。

在 RestoreAction.class 的 validate() 处设置断点

Screenshot 2024-03-24 081621

通过 getRestoreFileFromUpload 保存上传的文件

Screenshot (541)

getExportDescriptor 用于解压并读取 zip 文件的内容

Screenshot (542)

Screenshot (543)

然而,在调试之后,仍然没有找到该漏洞的根本原因。

CVE 中描述的原因是授权漏洞。这导致我们将注意力转向开发人员在权限分配过程中关于 Java 语言漏洞的研究。

将注意力转向 struts.xml 文件,该文件包含基于命名空间的操作和路由信息,以及拦截器(interceptors)。

Screenshot 2024-03-24 082951

Screenshot 2024-03-24 083107

Screenshot 2024-03-24 083206

9

我们可以看到 /json 命名空间增强了 /admin 命名空间的功能。因此,为 /admin 命名空间创建的路由也可以通过 /json 命名空间访问。

在 /json 命名空间的上下文中,请求路由过程需要经过一系列拦截器(interceptors)。其中一个拦截器名为 WebSudoInterceptor,它根据请求 URI 执行检查。

具体来说,WebSudoInterceptor 执行以下检查步骤:

  • 如果请求路径是 /authenticate.action,则会被忽略。
  • 如果请求路径是 /admin,它会检查 WebSudoNotRequired 属性是否为空。

如果请求发送到 '/json',那么对 '/json/action' 的请求将被转发到 '/setup/action' 和 'admin/action'。在此 CVE 中,易受攻击的路径是 '/json/setup-restore.action?synchronous=true'。

用 Burp Suite 抓取请求,GET /json/setup-restore.action。然而收到了“Method Not Allowed”响应。 尝试使用 POST /json/setup-restore.action?synchronous=true,并收到 200 响应。

10

11

上传文件 xmlexport-200123123001.zip

12

并收到响应

13

现在我们可以使用 admin:admin 账户登录

14

并得到如下结果

15

下载工具