如何保护您的WordPress网站免受GenericonsExample.htmlXSS漏洞的影响
介绍
2015 年 5 月 6 日,一个严重的 WordPress 错误被披露,可能影响数百万用户。 该漏洞实际上源于使用“Genericons”图标字体包的组件,可能会使您的站点容易受到跨站点脚本 (XSS) 攻击。
在本文中,我们将解释漏洞的影响,如何检查您的网站是否存在漏洞,以及如果您发现您的 受到 影响应该采取哪些措施。
漏洞说明
实际漏洞存在于名为“Genericons”的字体包中,而不是核心 WordPress 安装。 不幸的是,这个字体包被“TwentyFifteen”使用,该主题默认在 WordPress 中安装和启用。 该漏洞还影响了一个名为“JetPack”的流行 WordPress 自定义和增强插件,该插件有超过一百万的活动安装,可能还有插件和主题。
该漏洞存在于一个名为 example.html
的文件中,该文件包含在 Generic 软件包中。 这是一个非必要文件,用于展示字体。 但是,它包含一个 jQuery 代码段,该代码段引入了一个可能允许基于 DOM 的跨站点脚本攻击的漏洞。 任何使用更现代版本的“Genericons”软件包而不删除此文件的主题或插件都是易受攻击的。
基于 DOM 的跨站点脚本攻击通过改变用户浏览器解释的 DOM 环境来工作,导致脚本操作以与其原始设计相反的方式执行。 为了利用此漏洞,必须诱使用户在登录 WordPress 安装时单击特制链接。 如果应用程序具有这种类型的漏洞,服务器将无法轻松阻止不需要的行为,因为这些操作发生在浏览器本身内。 幸运的是,在这种情况下,消除漏洞是微不足道的。
我的服务器有这个漏洞吗?
2015 年 5 月 7 日,WordPress 4.2.2 发布,修复了这个问题。 如果您在此日期或之后安装或更新到最新版本的 WordPress,您的安装应该是安全的。 在此日期或之后通过 WordPress 一键创建的任何 DigitalOcean Droplets 都不应受到攻击。
如果您正在运行在此日期之前安装且尚未更新到 4.2.2 的 WordPress 实例,则您的站点可能容易受到攻击。 如果是这样,您的管理面板将显示如下所示的警告:
您还可以转到服务器的文档根目录并查找 example.html
文件本身。 例如,如果您在服务器的文档根目录中,您可以键入:
find . -path "*/genericons/example.html"
结果将如下所示:
find output./wp-content/themes/twentythirteen/genericons/example.html ./wp-content/themes/twentyfifteen/genericons/example.html ./wp-content/themes/twentyfourteen/genericons/example.html
在上面的示例中,在 TwentyFifteen 主题中发现了一个 example.html
文件,表明此安装存在漏洞。 此处显示的其他主题中的 example.html
文件实际上并不容易受到攻击,因为它们不包含有问题的 jQuery 行。 在 twentyfifteen/genericons
目录或您可能拥有的任何插件中查找 example.html
文件。
如何修补您的安装
修补系统的推荐方法是简单地升级 WordPress。 这不仅可以保护您的系统免受此漏洞的影响,还可以保护可能已修复的任何其他问题。
如果您的权限允许,您通常可以使用管理面板更新控件升级您的安装。 您可能会将此选项视为主页上的链接(如上一个屏幕截图所示)。 如果没有,您可以转到控制面板中的“更新”选项,然后单击“立即更新”按钮:
您可能还必须单独更新主题和插件。
尽管我们强烈建议您完全更新 WordPress(连同任何受影响的主题或插件),但您也可以轻松地手动删除有问题的文件。
为此,请登录您的 WordPress 服务器并导航到您的文档根目录。 您可以通过键入以下内容删除有问题的文件:
sudo find . -path "*/genericons/example.html" -exec rm -f {} \;
然后您可以再次检查您的目录结构:
find . -path "*/genericons/example.html"
应删除 genericons
目录中的所有 example.html
实例。
结论
虽然易受此错误影响的用户数量非常多,但修复非常简单,可以通过正常的 WordPress 更新方法完成。 如果您出于自己的目的或为客户管理 WordPress 安装,4.2.2 中可用的补丁将轻松关闭此漏洞。 与往常一样,确保 WordPress 安装安全的最佳方法之一是确保立即应用任何安全更新。