开发者社区> 问答> 正文

wordpress 任意文件删除漏洞手动修复方案

主机优惠 2018-07-02 18:17:16 1652

WordPress是网络上最受欢迎的CMS系统。据w3tech统计,约有30%的网站运行了该系统。该系统的应用是如此广泛,难免会成为网络犯罪分子攻击目标。在这篇博文中,我们将为读者介绍WordPress内核中的一个任意文件删除漏洞,这个漏洞可能会导致攻击者执行任意代码。早在7个月前,我们就向WordPress安全团队报告了这个漏洞,但到目前为止,该漏洞仍然没有得到修补。自初次报告(该报告既没有提供任何补丁,也没有给出具体的修复计划)至今,已经过了漫长的时间,但是仍然没有看到任何的修复迹象,所以,我们决定将这个漏洞公之于众,以督促其尽快采取行动。

受影响的版本


在撰写本文时,该漏洞仍然没有补丁可用。并且, 所有WordPress版本,包括当前的4.9.6版本在内,都面临这个漏洞的威胁
要想利用下面讨论的这个漏洞,攻击者需要事先获得编辑和删除媒体文件的权限。因此,该漏洞可用于通过接管角色与作者一样低的帐户或通过利用其他漏洞/错误配置来实现提权。

漏洞危害


利用这个漏洞,攻击者能够删除WordPress安装的任何文件(+ PHP服务器上的任何其他文件,即PHP进程有权删除的,尽情删就是了)。除了删除整个WordPress安装的可能性(如果当前没有备份可用的话,将会导致灾难性后果)之外,攻击者还可以利用任意文件删除功能绕过一些安全措施,继而在Web服务器上执行任意代码。更确切地说,攻击者可以删除下列文件:
  • .htaccess:通常情况下,删除该文件不会有任何安全影响。但是,在某些情况下,.htaccess文件包含与安全相关的安全约束(例如,对某些文件夹的访问限制),因此,删除此文件后,相应的安全限制将会随之消失。
  • index.php文件:通常情况下,一些空的index.php文件被放置到各个目录中,以防止相应目录中的内容被列出。删除这些文件后,攻击者就能够列出受该方法保护的目录中的所有文件。
  • wp-config.php:删除这个WordPress安装文件会在下次访问该网站时触发WordPress安装过程。这是因为wp-config.php包含数据库凭证,如果没有它,WordPress的就会采取尚未安装之前的操作。攻击者可以删除该文件,然后,使用为管理员帐户选择的凭据进行安装,最后在服务器上执行任意代码。



临时补丁


通过将该补丁添加到当前活动的主题/子主题的functions.php文件中,就可以将该补丁集成到现有的WordPress安装中。

add_filter( 'wp_update_attachment_metadata', 'rips_unlink_tempfix' );

function rips_unlink_tempfix( $data ) {
    if( isset($data['thumb']) ) {
        $data['thumb'] = basename($data['thumb']);
    }

    return $data;
}




分享到
取消 提交回答
全部回答(1)
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章