freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

嵌套反序列化的危害:Magento XXE 漏洞分析(CVE-2024-34102)
AlbertJay 2024-12-18 15:48:51 95221
所属地 广东省

前言

Magento 是当前网络上最受欢迎的电子商务解决方案之一,截至2023年末,全球超过 140000 个 Magento 实例正在运行。2024年6月11日,Adobe 发布的安全公告指出,Adobe Commerce/Magento 存在一个严重的未经认证的 XML 实体注入问题(CVE-2024-34102),其 CVSS 评分高达 9.8,充分表明了这一漏洞的极端危急性。

为了深入了解此漏洞的危害性,本文将对其进行全面分析,并构建概念验证工具(PoC)来验证漏洞的实际可利用性。通过这种方式,将详细揭示漏洞的潜在影响及可能带来的安全风险,为读者提供深入的理解,帮助其在实际应用中采取有效的防护措施。

该漏洞的严重性主要体现在以下几个方面:

  • 敏感信息泄露:攻击者能够从 Magento 中提取包含用于签署 JWT 的加密密钥的 app/etc/env.php 文件。这一泄露使得攻击者有能力伪造管理员 JWT,从而以管理员身份滥用受影响实例的 Magento API。
  • 远程代码执行的风险:此漏洞可以与近期涉及 PHP 过滤器链的研究结合利用,从而通过 CVE-2024-2961 漏洞实现远程代码执行(RCE)。对此,应特别感谢 Charles Fol 的贡献。
  • 广泛的影响:攻击者通过利用 XXE 漏洞,能够提取任何本地文件或远程 URL 的内容,造成严重的安全隐患。

为了进一步了解未打补丁版本的 Magento 与已打补丁版本之间的关键差异,从 Magento GitHub 仓库下载了未打补丁的 magento2-2.4.7.zip 和已打补丁的 magento2-2.4.7-p1.zip 文件。通过解压这些文件并在两个目录上运行 DiffMerge,发现了关于该漏洞的重要线索:

1734506932_676279b419017a1cb75f9.png!small?1734506933848

2.4.7-p1 中的新增更改

通过公开信息,清楚地意识到该漏洞与实例化 SimpleXMLElement 类有关。PHP 对该类的文档显示,dataIsURL 是可以传递给 SimpleXMLElement 构造函数的参数,允许从外部源加载 XML。单独阻止 dataIsURL 并不足以解决问题,因为该漏洞在没有此限制的情况下同样可以被利用。缓解措施则集中在阻止关键字 sourceData。基于这些信息,花费大量时间搭建 Magento 的开发环境,并寻找能够引导实例化带有可控参数的 SimpleXMLElement 的反序列化工具。

在处理复杂的反序列化问题时,强烈建议建立一个可以通过设置断点调试代码的开发环境。针对 Magento 2,使用了包含 XDebug 的 Docker 镜像,并为 PhpStorm 配置了相应的设置。在启动 Docker 镜像后,可以使用以下命令安装并填充 Magento 示例数据:

./scripts/composer create-project --repository-url=https://repo.magento.com/magento/project-community-edition=2.4.7 /home/magento#2.4.7是漏洞版本

./scripts/magento setup:install --base-url=http://magento2.test/ --db-host=mysql --db-name=magento_db --db-user=magento_user --db-password="PASSWD#" --admin-firstname=admin --admin-lastname=admin --admin-email=admin@admin.test --admin-user=admin --admin-password=admin1! --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --search-engine opensearch --opensearch-host=opensearch --opensearch-port=9200

./scripts/magento sampledata:deploy

./scripts/magento setup:upgrade

在 Magento 2 的代码库中搜索 Simplexml\Element.*sourceData 时,确定了以下几个可能的攻击目标位置:

~/Downloads/magento2-2.4

可试读前30%内容
¥ 19.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 网络安全 # web安全 # 漏洞分析 # Magento # XXE漏洞
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 AlbertJay 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
AlbertJay LV.5
这家伙太懒了,还未填写个人描述!
  • 40 文章数
  • 42 关注者
解析Next.js中的SSRF漏洞:深入探讨盲目的SSRF攻击及其防范策略
2025-02-08
企业防线的薄弱环节:深入了解供应链网络攻击的风险
2024-12-31
修复秘籍:如何有效应对CVE-2024-20767和CVE-2024-21216漏洞
2024-12-19
文章目录