近期,安全研究人员透漏了wordpress上一个未修补的安全漏洞,该漏洞出现在wp的核心代码上,而不是其中的插件或者主题。攻击者可以利用bug删除wp配置文件, 删除此文件的攻击者可以重新启动安装过程并使用他们自己的数据库设置安装该站点,从而有效地劫持站点以传递自定义或恶意内容。据称,该漏洞影响所有WordPress CMS版本,包括最新版本v4.9.6。

来自RIPS的安全研究人员今天透露了一个未修补的安全漏洞,这个漏洞影响了互联网最流行的内容管理系统(CMS)WordPress。 RIPS的研究人员说,去年11月他们已经向WordPress团队告知了这个特殊的漏洞,但是WordPress开发者未能发布补丁。

该漏洞影响WordPress CMS的核心,而不是其插件或主题。 更确切地说,这个bug是在PHP函数中发现的,它删除了在WordPress网站上上传图片的缩略图。

wp漏洞POC

RIPS研究人员发现,谁有权访问帖子编辑器 - 和可以上传或删除图像(和他们的拇指)的用户 - 可以插入在删除WordPress的CMS核心的关键的文件部分WordPress网站的恶意代码,这东西不应该是可能的以任何方式无法访问服务器的FTP。

此漏洞的严重程度的事实,只有在一定的访问级别的用户(作者或更高版本)可以利用这个漏洞,因为只有那些用户能创建岗位和管理相关的图像和缩略图的能力大大降低。

尽管如此,RIPS专家警告说,如果攻击者设法在网站上注册一个低级别的“用户”帐户,然后提升其权限,他可以利用此漏洞劫持网站。

他们可以劫持网站,因为该漏洞允许攻击者删除wp-config.php,这是一个网站的配置文件。 删除此文件的攻击者可以重新启动安装过程并使用他们自己的数据库设置安装该站点,从而有效地劫持站点以传递自定义或恶意内容。

下面嵌入了一个视频,显示使用此漏洞劫持站点的RIPS团队。

漏洞可导致的影响

利用此漏洞使攻击者能够删除WordPress安装的任何文件(+ PHP服务器上的任何其他文件,PHP进程用户具有适当的删除权限)。 除了删除整个WordPress安装的可能性(如果没有当前备份可用会导致灾难性后果),攻击者可以利用任意文件删除功能绕过一些安全措施并在Web服务器上执行任意代码。 更确切地说,可以删除以下文件:

  • .htaccess: 通常,删除此文件不会有任何安全后果。 但是,在某些情况下, .htaccess 文件包含与安全相关的约束(例如,对某些文件夹的访问限制)。 删除此文件将会禁用这些安全限制。
  • index.php文件: 通常情况下,将空的 index.php 文件放置到目录中,以防止Web服务器无法执行的情况下的目录列表。删除这些文件将为攻击者提供一份列表,列出受此措施保护的目录中的所有文件。
  • wp-config.php: 删除这个WordPress安装文件会在下次访问该网站时触发WordPress安装过程。 这是因为 wp-config.php 包含数据库凭证,如果没有它,WordPress的行为就好像它尚未安装。 攻击者可以删除该文件,使用管理员帐户选择的凭据进行安装过程,最后在服务器上执行任意代码。

漏洞影响所有WordPress版本

据称,该漏洞影响所有WordPress CMS版本,包括最新版本v4.9.6。

WordPress CMS团队的发言人没有回复关于他们没有补充RIPS团队报告的漏洞的原因的评论请求,但 Sucuri联合创始人Tony Perez证实了RIPS报告的有效性。 由于要求在WordPress网站上拥有作者级别的帐户,因此该漏洞很可能不会被大量利用。

修补程序

然而,对于博客和大userbases其他WordPress的供电网站,在乡郊团队已经发布了一个临时修补程序(包括在他们的报告的底部,在这里)。

此修补程序是网站所有者必须添加到网站当前活动主题文件夹内的functions.php文件中的一段PHP代码。

“所有提供的修补程序都会挂接到wp_update_attachement_metadata()调用中,并确保为meta-value thumb提供的数据不包含任何使路径遍历成为可能的部分, 因此,没有安全相关的文件可以删除。”

相关链接

https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/

时间线

2017年11月20日 在Hackerone上向WordPress安全团队报告漏洞。
2017年11月22日 这个漏洞被安全团队分类和验证。
2017年12月12日 询问进展情况。
2017年12月18日 WordPress正在开发一个补丁程序。 要求发布日期。 没有反应。
2018年1月9日 要求发布日期。 没有反应。
2018年1月20日 由于问题的严重性和缺乏沟通,被要求对Hackerone进行调解。
2018年1月24日 WordPress安全团队估计需要6个月的时间才能修复。
2018年5月24日 询问有关问题的进展和/或计划,并提醒我们尽快发布。 没有反应。
2018年5月24日 将推特DM发送给安全团队,以确保他们不会忽略Hackerone上的消息。
2018年6月26日 报告结束后7个月以上仍未解决问题。