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

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

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

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

工具目录

分类

查看所有分类
Loading categories
analyze-Exploit-CVE-2023-22518-Confluence — CVE-2023-22518 漏洞分析,针对 Atlassian Confluence Server,涵盖环境搭建、JAR 差异比对、根本原因分析,以及通过未授权恢复重新获得管理员访问权限。 | Kitploit
工具/GitHubGitHub/d3ckkno0b/analyze-exploit-cve-2023-22518-confluence
漏洞分析代码分析漏洞利用逆向工程Web应用程序漏洞利用调试器学习与教育
GitHubd3ckkno0b/analyze-exploit-cve-2023-22518-confluence

analyze-Exploit-CVE-2023-22518-Confluence

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-22518 漏洞分析,针对 Atlassian Confluence Server,涵盖环境搭建、JAR 差异比对、根本原因分析,以及通过未授权恢复重新获得管理员访问权限。

查看仓库
11年前尚未审核

Exploit-CVE-2023-22518 Confluence 中的 CVE-2023-22518

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

image

选择 Trial Installation(试用安装),然后点击链接获取免费试用密钥。之后设置集群:选择非集群(non-cluster)。 image

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

按照以下说明操作:

Download the MySQL driver Drop the .jar file in /home/lily/atlassian/confluence/confluence/WEB-INF/lib Restart Confluence and continue the setup process. image 配置数据库,创建用户和密码

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;

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

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

image

然后重启 MySQL 和 Confluence。接着前往 localhost:8090 的安装页面,使用已创建的数据库进行填写。

image

检查连接是否成功,点击 Next。然后进行注册(Sign up)。

image

调试

在 IntelliJ 中对两个版本的 jar 文件进行 Diff

  • 具体来说,这里我对 8.0.4 和 7.19.16 两个版本进行 diff。按照描述,对比两个版本的 confluence.jar 文件

image

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

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

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

image

通过 getRestoreFileFromUpload 保存上传文件的函数

image

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

image

image

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

CVE 中描述的原因是授权漏洞。这促使我们将注意力转向开发者在进行权限分配过程中关于 Java 语言漏洞的研究文章。

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

image

image

image

可以看到 /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 响应。

image

image

上传文件 xmlexport-200123123001.zip

image

发送并接收响应

image

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

image

得到如下结果

image

下载工具