Atlassian Confluence 远程代码执行漏洞分析(CVE-2023-22518)
字数 1427 2025-08-20 18:17:48
Atlassian Confluence 远程代码执行漏洞分析(CVE-2023-22518) 教学文档
1. 漏洞概述
CVE-2023-22518是Atlassian Confluence中的一个严重漏洞,属于权限分配不当导致的远程代码执行漏洞。该漏洞允许攻击者通过未授权访问特定接口,最终可能导致完全控制Confluence服务器。
2. 环境搭建
2.1 所需环境
- Docker环境
- Confluence 8.6.0版本
- MySQL数据库
2.2 搭建步骤
2.2.1 创建目录和准备文件
- 创建目录
myconfluence - 将环境配置压缩包解压至该目录
- 在目录下创建
data文件夹
2.2.2 启动容器
docker-compose -f docker-compose-confluence.yml up -d
2.2.3 容器内初始化
进入容器后执行:
apt-get update; apt-get install -y net-tools vim mysql-server netcat tcpdump
2.3 Confluence激活
方法1:官方免费获取
方法2:手动激活
- 访问8090端口获取ServerID
- 在容器中执行:
cd /var/atlassian/
java -jar atlassian-agent.jar -d -m test@test.com -n BAT -p 'conf' -o http://localhost:8090 -s <ServerID>
- 将生成的License code复制到Confluence中
2.4 数据库配置
2.4.1 MySQL配置
- 复制配置文件:
docker cp ./my.cnf confluence:/etc/mysql/my.cnf
- 执行SQL语句:
CREATE DATABASE confdb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'testuser'@'%' IDENTIFIED BY 'test123';
GRANT ALL PRIVILEGES ON confluence.* TO 'testuser'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
- 重启MySQL服务:
service mysql restart
- 设置MySQL自启动:
修改/entrypoint.py文件,添加:
import os;os.system("service mysql start")
2.4.2 界面配置
在Confluence安装界面输入数据库连接信息:
- 数据库类型:MySQL
- 主机名:localhost
- 端口:3306
- 数据库名:confdb
- 用户名:testuser
- 密码:test123
2.5 创建管理员账号
在安装过程中创建一个示例站点和管理员账号。
3. 漏洞分析
3.1 漏洞根源
通过比较8.6.1(修复版本)的jar文件,发现大部分action都加入了AdminOnly注解,表明这是一个权限分配不当的问题。
3.2 Struct2框架特性
Confluence基于Struct2框架开发,使用二级哈希表进行路由查找。关键问题在于:
- 哈希表存储不同namespace及其关联的action
- 当前package的action会继承父级包的action
- 某些情况下,请求
/json/xxxaction会路由到/admin/xxxaction或/setup/xxxaction
3.3 漏洞接口
通过分析发现/json/setup-restore.action接口可以未授权访问,而正常情况下应该只能通过/setup/setup-restore.action访问。
4. 漏洞利用
4.1 未授权恢复备份
- 准备一个修改过密码的站点备份文件
- 访问
/json/setup-restore.action接口 - 上传备份文件进行恢复
- 使用备份中的管理员凭证登录
注意:空备份会导致数据清空,必须使用有效的站点备份文件。
4.2 远程代码执行
- 登录后台后,进入"管理应用"
- 使用"上传应用"功能上传恶意插件
- 通过插件实现任意命令执行
5. 防护措施
- 及时升级到最新版本
- 限制对Confluence管理接口的访问
- 实施网络隔离,限制外部访问Confluence管理端口
- 定期备份数据
6. 参考资源
- 环境搭建资源:百度网盘链接 提取码: asbw
- 官方安全公告:Atlassian安全公告
- GitHub PoC参考:CVE-2023-22515_RCE
7. 免责声明
本文仅供学习研究使用,任何利用此漏洞进行的非法行为都与作者无关。请在法律允许范围内使用这些信息。