Magento Commerce XSS漏洞分析

栏目: 编程工具 · 发布时间: 6年前

内容简介:虽然电子商务为我们提供了更加便利的生活,但也面临来自互联网上越来越多的安全威胁。根据FortiGuard Labs团队最近在

Magento Commerce XSS漏洞分析

一、前言

虽然电子商务为我们提供了更加便利的生活,但也面临来自互联网上越来越多的安全威胁。根据 Alexa top 1M 2018年的统计数据,Magento Commerce电子商务平台目前的市场份额已经超过14%,这也是全球第二大电子商务平台。Magento的客户包括许多知名的企业,如 HP (惠普)、 Coca-Cola (可口可乐)以及 Canon (佳能)。

FortiGuard Labs团队最近在 Magento 中找到了一个Cross-Site Scripting(XSS,跨站脚本)漏洞,漏洞根源在于Magento将用户提供的数据插入动态生成的widget表单时,没有合理过滤用户所输入的数据。虽然这个XSS漏洞只存在于Magento管理员页面中,但远程攻击者可以利用该漏洞在受害者浏览器上执行任意代码,然后获取Magento高权限账户的控制权,访问敏感数据或者接管存在漏洞的网站。

Magento Commerce 2.1~2.1.16、2.2~2.2.7版本受此XSS漏洞影响。

二、漏洞分析

用户在编辑Magento站点页面时,可以使用两种模式: WYSIWYG 模式以及 HTML 模式。在 WYSIWYG 模式中,有一个“Insert Widget…”按钮(图1)。如图2所示,我们可以访问 http://IP/magento/index.php/admin/admin/widget/index/ 链接,直接调用“Insert Widget”所对应的函数:

Magento Commerce XSS漏洞分析

图1. WYSIWYG模式中的Insert Widget函数

Magento Commerce XSS漏洞分析

图2. 直接访问Insert Widget函数表单

图2中的表单由 Widget.php 的一个 php 函数所生成,该页面具体路径为: /vendor/magento/module-widget/Block/Adminhtml/Widget.php (参考 GitHub 链接)。该页面处理用户提供的URL,提取 widget_target_id 参数的值,然后将其插入 script 标签中,如图3所示。比如,当我们访问 http://IP/magento/index.php/admin/admin/widget/index/widget_target_id/yzy9952 这个链接时, widget_target_id 的值就会被插入 script 标签中,如图4所示。

Magento Commerce XSS漏洞分析

图3. Widget.php生成表单script标签

Magento Commerce XSS漏洞分析

图4. Widget.php生成的 script 标签

该函数没有合理过滤用户提供的数据,只是使用某些符号(如 "} 以及 ; )来闭合用户输入的数据。然而,攻击者可以添加其他一些符号(如 )}); ),闭合当前函数,然后添加HTML注释标签 <!-- 注释掉后续代码,轻松绕过这个限制过程。比如我们可以访问 http://IP/magento/index.php/admin/admin/widget/index/widget_target_id/yzy9952")});test<!-- 这个链接:

Magento Commerce XSS漏洞分析

图5. 绕过过滤器

此时,攻击者就能将任意代码插入这个页面中。我们可以看到,在 script 标签开头处,代码调用了 require 函数,但 require 函数并不存在。然而,我们可以自己创建 require 函数,然后插入自己的代码,再接着执行该函数。比如,我们可以访问如下PoC链接,就能执行我们提供的代码: http://IP/magento/index.php/admin/admin/widget/index/widget_target_id/yzy9952")});function%20require(){alert(document.domain)}<!--

Magento Commerce XSS漏洞分析

图6. PoC

三、解决方案

如果用户正在使用存在漏洞的Magento Commerce版本,请尽快升级到最新版Magento,或者尽快打上安全补丁。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深度探索C++对象模型

深度探索C++对象模型

斯坦利•B.李普曼 (Stanley B. Lippman) / 侯捷 / 电子工业出版社 / 2012-1 / 69.00元

作者Lippman参与设计了全世界第一套C++编译程序cfront,这本书就是一位伟大的C++编译程序设计者向你阐述他如何处理各种explicit(明确出现于C++程序代码中)和implicit(隐藏于程序代码背后)的C++语意。 本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模......一起来看看 《深度探索C++对象模型》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具