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