<var id="xpn71"></var>
<ins id="xpn71"></ins>
<cite id="xpn71"><noframes id="xpn71">
<ins id="xpn71"></ins>
<cite id="xpn71"></cite><del id="xpn71"></del> <var id="xpn71"><dl id="xpn71"></dl></var>
<ins id="xpn71"><span id="xpn71"><listing id="xpn71"></listing></span></ins>
<cite id="xpn71"><dl id="xpn71"></dl></cite><ins id="xpn71"></ins>
<thead id="xpn71"><dl id="xpn71"><progress id="xpn71"></progress></dl></thead>
<var id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></var>
<listing id="xpn71"></listing>
<var id="xpn71"></var><cite id="xpn71"><dl id="xpn71"></dl></cite> <cite id="xpn71"><dl id="xpn71"></dl></cite><menuitem id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></menuitem>
<progress id="xpn71"><ruby id="xpn71"><span id="xpn71"></span></ruby></progress>
<ins id="xpn71"></ins>
<cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><video id="xpn71"><thead id="xpn71"></thead></video></cite>
<cite id="xpn71"></cite>
<ins id="xpn71"><dl id="xpn71"></dl></ins>
<thead id="xpn71"><dl id="xpn71"><address id="xpn71"></address></dl></thead>
<thead id="xpn71"></thead><cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><dl id="xpn71"></dl></cite>
<ins id="xpn71"></ins><address id="xpn71"><i id="xpn71"><th id="xpn71"></th></i></address>

WordPress系统一个安全漏洞,其内核中任意删除文件可导致执行任意代码

WordPress   2018年07月03日 16:53  

作为网上最受欢迎的系统,WordPress系统覆盖了曰生成的网站。如此多的用户量,不免也叫很多网络犯罪眼红,成为被攻击的目标。

有关WordPress内核中的一个任意文件删除漏洞,可能会导致攻击者执行任意代码。所?#28304;?#22788;只是对这一漏洞的公布,希望能得到各方重视,并尽快采取行动。

受影响的版本

在撰写本文时,该漏洞仍然没有补丁可用。并且,所有WordPress版本,包括当前的4.9.6版本在内,都面临这个漏洞的威胁。

要想利用下面?#33268;?#30340;这个漏洞,攻击者需要事?#28982;?#24471;编辑和删除媒体文件的权限。因此,该漏洞可用于通过接管角色与作者一样低的帐户或通过利用其他漏洞/错误配?#32654;?#23454;现提权。

漏洞危害

利用这个漏洞,攻击者能够删除WordPress安装的任何文件(+ PHP服务器?#31995;?#20219;何其他文件,即PHP进程有权删除的,尽情删就是了)。除了删除整个WordPress安装的可能性(如果当前没有备份可用的话,将会导致灾难性后果)之外,攻击者还可以利用任意文件删除功能绕过一些安全措施,继而在Web服务器上执行任意代码。更确切地说,攻击者可以删除下列文件:

.htaccess?#21644;?#24120;情况下,删除该文件不会有任何安全影响。但是,在某些情况下,.htaccess文件包含与安全相关的安全约束(例如,对某些文件夹的访问限制),因此,删除此文件后,相应的安全限制将会随之消失。

index.php文件?#21644;?#24120;情况下,一些空的index.php文件被放置到各个目录中,以防止相应目录中的内容被列出。删除这些文件后,攻击者就能够列出受该方法保护的目录中的所有文件。

wp-config.php:删除这个WordPress安装文件会在下次访问该网站时触发WordPress安装过程。这是因为wp-config.php包含数据库凭证,如果没有它,WordPress的就会采取尚未安装之前的操作。攻击者可以删除该文件,然后,使用为管理员帐户选择的凭据进行安装,最后在服务器上执行任意代码。

要了解详情,请查看视频:https://blog.ripstech.com/videos/wp-unlink.mp4

漏洞详情

将未经过滤的用户输入传递给文件删除函数时,就可能触发任意文件删除漏洞。对于PHP?#27492;擔?#24403;调用unlink()函数并且可能影响部?#21482;?#25972;个?#38382;?filename的用户输入没有进行适当的过滤时,就可能出现这种情况;其中,该?#38382;?#34920;示表要删除的文件的路?#19969;?/p>

在WordPress Core中,引发这个漏洞的代码位于wp-includes/post.php文件中:

在上面显示的wp_delete_attachement()函数中,$ meta [‘thumb’]的内容未经任何过滤处理就直接传递给unlink()调用了。这段代码的用途是,在删除图像的同时,一起将其缩略图删掉。在WordPress中,通过媒体管理器上传的图像将作为attachement类型的文章?#28304;?#20540;$meta [‘thumb’]是?#37038;?#25454;库中检索的,在数据库中,它保存在表示图像的文章的自定义字段中。因此,在?#37038;?#25454;库检索后,到传递给关键函数unlink()期间,并没有对表示缩略图文件名的?#21040;?#34892;任何过滤或检查。如果该值在保存到数据库之前也没有经过任何过滤,或过滤不充分的话——我们将在下一个代码清单中看到这种情况——就可能出现一个两阶段的任意文件删除漏洞。

/wp-admin/post.php文件:

后面的代码片?#21361;?#20301;于/wp-admin/post.php中)展示了隶属于附件的缩略图的文件名是如何保存到数据库的。用户输入从$_POST [‘thumb’]中取出后,直到通过wp_update_attachment_metadata()保存到数据库这段过程中,系统没有对这些内容进行适当的安全过滤,因此,也就无法确保该值的确为正在编辑的附件的缩略图。此外,由于$_POST [‘thumb’]的值可以将任意文件的路径保存到WordPress上传目录相对路径中,所以当附件被删除时,该文件?#19981;?#34987;删除,如前面的代码所展示的那样。

临时补丁

在撰写本文的时候,WordPress中的这个漏洞仍未得?#21483;?#22797;。正因为如此,我?#19988;?#32463;开发了一个临时补丁供大家使用。通过将该补丁添加到当前活动的主题/子主题的functions.php文件中,就可以将该补丁集成到现有的WordPress安装中。

?#23548;?#19978;,该补丁的工作原理就是,“钩住”wp_update_attachement_metadata()调用,对提供给thumb的数据进行安全过滤,确保其中不包含任?#38382;?#36335;径遍历成为可能的内容,这样一来,攻击者就无法删除与安全相关的文件了。

当然,这里提供的补丁只是临时性的,主要用来防止用户收到恶意攻击。由于我们无法兼顾WordPress插件的所有可能的向后兼容性问题,所以,建议您谨慎地对WordPress文件进行任何修改。

时间线

2017/11/20 ? ? 向Hackerone?#31995;腤ordPress安全团队报告该漏洞。

2017/11/22 ? ? 安全团队对这个漏洞进行分类和验证。

2017/12/12 ? ? 询问进展。

2017/12/18 ? ? ?Wordpress正在开发一个补丁程序。我们询问发布日期,但是没有收到回应。

2018/01/09 ? ? 咨询补丁的发布日期,依然没有收到回复。

2018/01/20 ? ? 鉴于该安全问题的严重性和缺乏沟通,我们请求Hackerone进行调解。

2018/01/24 ? ?WordPress安全小组估计修复时间为6个月。

2018/05/24 ? ? 询问有关问题的进展和/或计划,并提醒他们尽快发布,但是没有得到任?#20301;?#24212;。

2018/05/24 ? ? 向安全团队发送twitter DM,以确保他们不会忽视Hackerone?#31995;?#28040;息。

2018/06/26 ? ? 漏洞提交7个月后,WordPress安全团队仍未解决问题。

结束语

在这篇文章中,我们介绍了WordPress Core中的一个任意文件删除漏洞,任何具有作者权限的用户都能够利用该漏洞来完全接管WordPress网站,继而在服务器上执行任意代码。尽管该漏洞去年就报告给了WordPress安全团队,但截止撰写本文时为止,他们仍然没有对该漏洞进行修复。

为了提高对这个漏洞的认识,我们决定发布一些?#38468;?#21644;相应的补丁。使用我们的安全分析方法,大家可以轻松发现该漏洞,我们确信这个问题已经为许多研究人员所了解。尽管用户帐户的要求对该漏洞的影响规模有一些影响,但共享多个用户帐户的站点,应该及时安装相应的安全补丁。

下面是整理这篇漏洞发现发表的原文及文?#36335;?#35793;:

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

翻译:https://www.secpulse.com/archives/73019.html

?#34892;?#36259;的朋友可以继续点开去看。

您或许对下面这些文章?#34892;?#36259;:                    本月吐槽?#37327;?#25490;行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!

You must be Logged in to post comment.

部落快速搜索栏

各类专题梳理

网站导航栏

X
?
返回顶部
<var id="xpn71"></var>
<ins id="xpn71"></ins>
<cite id="xpn71"><noframes id="xpn71">
<ins id="xpn71"></ins>
<cite id="xpn71"></cite><del id="xpn71"></del> <var id="xpn71"><dl id="xpn71"></dl></var>
<ins id="xpn71"><span id="xpn71"><listing id="xpn71"></listing></span></ins>
<cite id="xpn71"><dl id="xpn71"></dl></cite><ins id="xpn71"></ins>
<thead id="xpn71"><dl id="xpn71"><progress id="xpn71"></progress></dl></thead>
<var id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></var>
<listing id="xpn71"></listing>
<var id="xpn71"></var><cite id="xpn71"><dl id="xpn71"></dl></cite> <cite id="xpn71"><dl id="xpn71"></dl></cite><menuitem id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></menuitem>
<progress id="xpn71"><ruby id="xpn71"><span id="xpn71"></span></ruby></progress>
<ins id="xpn71"></ins>
<cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><video id="xpn71"><thead id="xpn71"></thead></video></cite>
<cite id="xpn71"></cite>
<ins id="xpn71"><dl id="xpn71"></dl></ins>
<thead id="xpn71"><dl id="xpn71"><address id="xpn71"></address></dl></thead>
<thead id="xpn71"></thead><cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><dl id="xpn71"></dl></cite>
<ins id="xpn71"></ins><address id="xpn71"><i id="xpn71"><th id="xpn71"></th></i></address>
青海快三昨天
<var id="xpn71"></var>
<ins id="xpn71"></ins>
<cite id="xpn71"><noframes id="xpn71">
<ins id="xpn71"></ins>
<cite id="xpn71"></cite><del id="xpn71"></del> <var id="xpn71"><dl id="xpn71"></dl></var>
<ins id="xpn71"><span id="xpn71"><listing id="xpn71"></listing></span></ins>
<cite id="xpn71"><dl id="xpn71"></dl></cite><ins id="xpn71"></ins>
<thead id="xpn71"><dl id="xpn71"><progress id="xpn71"></progress></dl></thead>
<var id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></var>
<listing id="xpn71"></listing>
<var id="xpn71"></var><cite id="xpn71"><dl id="xpn71"></dl></cite> <cite id="xpn71"><dl id="xpn71"></dl></cite><menuitem id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></menuitem>
<progress id="xpn71"><ruby id="xpn71"><span id="xpn71"></span></ruby></progress>
<ins id="xpn71"></ins>
<cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><video id="xpn71"><thead id="xpn71"></thead></video></cite>
<cite id="xpn71"></cite>
<ins id="xpn71"><dl id="xpn71"></dl></ins>
<thead id="xpn71"><dl id="xpn71"><address id="xpn71"></address></dl></thead>
<thead id="xpn71"></thead><cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><dl id="xpn71"></dl></cite>
<ins id="xpn71"></ins><address id="xpn71"><i id="xpn71"><th id="xpn71"></th></i></address>
<var id="xpn71"></var>
<ins id="xpn71"></ins>
<cite id="xpn71"><noframes id="xpn71">
<ins id="xpn71"></ins>
<cite id="xpn71"></cite><del id="xpn71"></del> <var id="xpn71"><dl id="xpn71"></dl></var>
<ins id="xpn71"><span id="xpn71"><listing id="xpn71"></listing></span></ins>
<cite id="xpn71"><dl id="xpn71"></dl></cite><ins id="xpn71"></ins>
<thead id="xpn71"><dl id="xpn71"><progress id="xpn71"></progress></dl></thead>
<var id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></var>
<listing id="xpn71"></listing>
<var id="xpn71"></var><cite id="xpn71"><dl id="xpn71"></dl></cite> <cite id="xpn71"><dl id="xpn71"></dl></cite><menuitem id="xpn71"><dl id="xpn71"><listing id="xpn71"></listing></dl></menuitem>
<progress id="xpn71"><ruby id="xpn71"><span id="xpn71"></span></ruby></progress>
<ins id="xpn71"></ins>
<cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><video id="xpn71"><thead id="xpn71"></thead></video></cite>
<cite id="xpn71"></cite>
<ins id="xpn71"><dl id="xpn71"></dl></ins>
<thead id="xpn71"><dl id="xpn71"><address id="xpn71"></address></dl></thead>
<thead id="xpn71"></thead><cite id="xpn71"></cite>
<thead id="xpn71"></thead>
<cite id="xpn71"><dl id="xpn71"></dl></cite>
<ins id="xpn71"></ins><address id="xpn71"><i id="xpn71"><th id="xpn71"></th></i></address>