大家好,我是小编
昨晚睡觉着凉
挂着鼻涕坚持写稿
小伙伴们千万注意身体啊
前言
相信许多人对WordPress并不陌生,但是,WordPress CMS平台中出现了一个应用程序级别的拒绝服务(DoS)漏洞,该漏洞影响严重,会导致大多数WordPress网站被关闭,简单到一个人只用一台机器就可以做到。
由于该公司拒绝修补这个漏洞(CVE-2018-6389),它目前仍然存在,几乎影响到之前发布的所有WordPress版本,包括最新的4.9.2版本。
该漏洞与load-scripts.php脚本有关,load-scripts.php是WordPress CMS中的一个内置脚本。对于普通用户来讲,load-scripts.php文件只是为管理员设计的,用来将服务器端的多个JavaScript文件组合成一个请求,来帮助网站在加载页面时提高性能。
在登录之前,为了使load-scripts.php可以在管理登录页面(wp-login.php)上运行,WordPress作者没有设置任何身份验证,这使得任何人都可以使用该功能。
根据安装的插件和模块的不同,load-scripts.php文件通过将所需的JavaScript名称传入“load”参数中,进而选择性地调用所需的JavaScript文件,并用逗号分隔。
如下面的URL所示:
https://your-wordpress-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery
在加载网站时,load-scripts.php尝试查找URL中给出的每个JavaScript文件名,将这些文件名附加到单个文件中,然后将它们发送回用户的网页浏览器。
攻击手段
根据研究人员的说法,攻击者可以强制load-scripts.php将所有可能的JavaScript文件(即181个脚本)一次性地上传到目标网站的URL中,使得目标网站消耗大量CPU和服务器内存。
研究人员表示:
“利用一个明确的列表($ wp_scripts),用户可以把它作为load []参数的一部分请求,如果请求的值存在,服务器将执行一个I/O的读取操作,以获得与用户有关的明确的路径。”
一个请求可能不足以导致整个网站无法访问,但研究人员使用python脚本doser.py来做了一个PoC,它可以向同一个URL同时发出大量的请求,尽可能多地占用目标服务器CPU资源,然后导致网站无法访问。
DoS攻击的真实性已经被验证,该攻击成功地导致了一个在中型VPS服务器上运行的演示WordPress网站无法访问。
当然,对于高处理能力和大内存的专用服务器来说,一台连接40Mbps的计算机的攻击能力,还不足让正在运行的演示网站出现无法访问的情况。
但是,这并不意味着大型服务器上的WordPress网站是安全的,因为应用程序级别的攻击通常只需要很少的数据包和带宽就可以让一个网站瘫痪。
因此,拥有更多带宽或者少量机器人的攻击者都可以利用这个漏洞攻击大型的WordPress网站。
缓解措施
随着全面的披露,研究人员提供了一个攻击WordPress拒绝服务漏洞的视频演示。
研究人员通过HackerOne平台向WordPress团队报告了这个DoS漏洞。然而,该公司拒绝修复这个问题。
公司解释到:
这种错误应该在服务器端或网络层面而不是应用层面上得到缓解,这不是我们WordPress可以控制的。
文章开始就说过,这个漏洞其实很严重,因为WordPress占据了近29%的网站,这会使得数百万的网站处于危险状态,而合法用户却无法正常使用。
对于那些无法提供防护来应对攻击的网站,研究人员提供了一个复刻版本的WordPress,其中包括针对此漏洞的缓解措施。
虽然复刻版本WordPress并非来自原作者,但为了安全起见,我们仍建议用户安装修改后的CMS。
你想看什么样的干货
欢迎后台留言
小编拼死也要奉上
领取专属 10元无门槛券
私享最新 技术干货