这个XSS漏洞厉害了,放大图片就中招

FortiGuard Labs团队最近在WooCommerce中发现了一个跨站点脚本(XSS)漏洞。WooCommerce是一个基于WordPress构建的开源电子商务平台。BuiltWith统计,WooCommerce目前仍是使用量排名第一的电子商务平台,2018年占全球市场份额的22%。

根据FortiGuard Labs团队的说法,此XSS漏洞(CVE-2019-9168)存在于Photoswipe缩放显示功能中。更确切来讲,它是由于WooCommerce没有对图片的标题和标题数据进行“消毒”(清理或过滤)导致的。

此漏洞允许攻击者将任意代码注入到基于WooCommerce的网站中。当受害者访问被注入了攻击代码的网页时,攻击者就可以控制受害者的浏览器、劫持当前的WooCommerce会话、收集敏感信息等。

需要指出的是,此XSS漏洞会影响到3.5.4之前的所有WooCommerce版本。

根据FortiGuard Labs发布的0day漏洞警报,WooCommerce团队推出了一个补丁。从WooCommerce团队提供的信息来看,安装补丁后的WooCommerce会对图片的标题和标题数据进行“消毒”。

这个XSS漏洞厉害了,放大图片就中招

图1. CVE-2019-9168补丁

漏洞分析

想要复现此漏洞,第一步是上传图片并将JavaScript代码插入图片的标题字段(见图2)。在WordPress中,将图片上传到低权限帐户不需要WooCommerce插件访问权限。

这个XSS漏洞厉害了,放大图片就中招

图2.上传图片

因为只有像管理员这样的高权限帐户才能添加任意JavaScript代码,所以FortiGuard Labs团队的研究人员使用了低权限账户插入已“消毒”的代码“<img src=1 onerror=prompt(‘1’)> ”。

这个XSS漏洞厉害了,放大图片就中招

图3.插入XSS代码

然后,一旦有人将受感染的图片添加为产品图片或添加到产品库中,插入的XSS代码就会被添加到产品页面中(见图4)。

这个XSS漏洞厉害了,放大图片就中招

图4.被添加到产品页面的受感染图片

现在,当受害者查看此产品并放大产品图片时,XSS代码就会自动执行(见图5和图6)。

这个XSS漏洞厉害了,放大图片就中招

图5.放大产品图片


这个XSS漏洞厉害了,放大图片就中招

图6.触发XSS攻击

为了简化攻击过程,攻击者可以直接将图片的标题和主题改为“<img src=1 onerror=prompt(‘2’)> ”(见图7)。

这个XSS漏洞厉害了,放大图片就中招

图7.创建本地PoC文件

接下来,攻击者所需要做的就是将此图片共享给网站管理员。随后,当管理员将此图片用作产品图片或将其添加到产品库中时,XSS代码会顺带被插入。

这个XSS漏洞厉害了,放大图片就中招

图8.网站管理员将PoC文件用作产品图片

这个XSS漏洞厉害了,放大图片就中招

图9.触发XSS攻击

如上所述,攻击者可以利用此漏洞来劫持当前用户会话、控制受害者的浏览器等。由于攻击目标是电子商务网站,因此攻击者还可以用它来收集银行卡信息、地址等敏感数据。

解决方案

我们建议,所有目前仍在易受攻击WooCommerce版本的用户都应立即升级到最新版本。

相关文章