该漏洞与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网站。
研究人员通过HackerOne平台向WordPress团队报告了这个DoS漏洞。然而,该公司拒绝修复这个问题。
公司解释到:
这种错误应该在服务器端或网络层面而不是应用层面上得到缓解,这不是我们WordPress可以控制的。
文章开始就说过,这个漏洞其实很严重,因为WordPress占据了近29%的网站,这会使得数百万的网站处于危险状态,而合法用户却无法正常使用。
对于那些无法提供防护来应对攻击的网站,研究人员提供了一个复刻版本的WordPress,其中包括针对此漏洞的缓解措施。
虽然复刻版本WordPress并非来自原作者,但为了安全起见,我们仍建议用户安装修改后的CMS。
本文来源于:借助该漏洞,你也可以攻破WordPress-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
-
- 加入Q群
- QQ扫一扫
-
评论