安全风险:危险
利用程度:简单/远程
可怕指数:7/10
漏洞类型: 存储型漏洞
打补丁的版本:MagentoCE:1.9,2.3,MagentoEE:1.14.2.3
在我们对云WAF进行定期调查审计期间,我们发现了一个影响到Magento平台的存储型XSS漏洞,它可以很容易地被远程利用。我们通知了Magento团队,并和他们一起对其进行了修复。
漏洞的披露时间表:
•2015年11月10日-发现错误,开始向Magento的安全团队报告
•2015年12月1日-Magento没有回应,请求对我们之前的邮件进行确认。
•2015年12月1日-Magento收到报告的收据。
•2016年1月7日-请求一个ETA,自发送原始报告以来已经过了两个月。
•2016年1月11日-Magento的回答是补丁已经准备好了,但是没有可用的ETA。
•2016年1月20日-Magento发布修复这个问题的补丁包SUPEE-7405。
•2016年1月22日- Sucuri公开披露漏洞的信息。
这个漏洞对我有危险吗?
这个漏洞几乎影响到每一台安装了低于1.9.2.3版本的MagentoCE和低于1.14.2.3版本的MagentoEE的设备。这个问题位于Magento核心库,更确切地说是在管理员的后台。除非你在WAF后面,或者有一个改良过的管理面板,否则你将处于危险之中。
因为这是一个存储型XSS漏洞,所以这个问题可能会被攻击者利用来接管你的网站、创建新的管理员帐号、盗取客户信息,或者做一切合法的管理员帐户可以做的事。
技术细节
问题存在于:
app/design/adminHTML/default/default/template/sales/order/view/info.pHTML:
你可以从上面的代码片段中看到:这个模板将the getCustomerEmail method的返回值添加到了管理面板上。这段代码看起来类似于几个月前我们在WordPress Jetpack插件中发现一个错误。有鉴于此,我们研究了Magento用来检查一个给定的字符串是否是一个电子邮件的验证机制的类型。
这是我们的发现:
它接受两种不同形式的电子邮件:
•定期的,类似于我们在WordPress中发现的那种(没有双引号,没有“<”符号,等等)。
•引证字符串格式, 只要两个双引号,就可以接受几乎任何可打印字符(空格字符除外,它只允许在正则空间使用)。
理论上,这意味着我们可以使用像“><script>(1);</script>”@sucuri.net这样的电子邮件作为我们的客户帐户的邮件,提交订单,看看当管理员在管理面板检查我们的订单时会发生什么。
我们是正确的!我们只触发了Magento核心内的一个XSS。
尽快打补丁
如果你正在使用一个含有漏洞的版本的Magento,请尽快更新或者下载补丁!如果不能,那么我们强烈建议使用我们的网站防火墙或同等技术对其进行修补。
![weinxin](http://zone.ci/zone_ci_images/zone.ci.png)
评论