DDoS掉任何WordPress网站程序

吴哲路 2019年10月15日19:23:07DDoS掉任何WordPress网站程序已关闭评论 17,721

似乎没有足够的方法来攻击WordPress网站,一位名叫巴拉克·塔威利(Barak Tawilli)的以色列研究人员宣布了一种简单的方法,只用一台电脑就可以对WordPress网站发起拒绝服务(DoS)攻击。WordPress网站在互联网上的百分比是多少?30%!

此次攻击利用了CVE-2018-6389相关漏洞。CVE数据库没有给出该漏洞的详细信息,但只表示“保留”供将来使用。然而,2月5日,以色列安全研究员在其博客上发布了对该漏洞的详细描述。

此漏洞可能允许黑客滥用WordPress load-scripts.php功能,该功能旨在让管理员或网站开发人员在服务器端将多个JavaScript记录组合并为一个请求,以提高网站性能。

塔威利的DoS方法使用两个关键元素。首先,它利用了无需用户认证就可以调用load-scripts.php的特性——任何人都可以调用它。其次,load-scripts.php可以接受一个名为“加载[”的参数,而“加载[”是一个数组,指定要组合和加载的多个脚本。因为php还用于提高wp-login.php页面的性能,所以无需任何用户验证就可以调用PHP。

WordPress使用wp_scripts列表存储所有181个脚本文件的路径,以便管理员或开发人员可以在load[]参数中包括特定脚本的路径,从而根据用户提供的值提高性能。Wp_scripts列表在script-loader.php文件中是硬编码的。

如果我向服务器发送一个请求来提供存储在其上的每个JS模块,会发生什么?有了这个请求,服务器可以执行181个输入/输出(I/O)操作!嗯,我真的做了...

该请求花费了服务器2.2秒的时间来响应,响应数据几乎达到4mb——耗尽了服务器。

塔威利的下一步是使用他自己编写的Python脚本自动重复发送相同的请求。最后,通过始终发送相同的请求来响应昂贵的请求,服务器不堪重负,没有时间来处理它。塔威利轻松指挥有效的拒绝服务攻击。

他通过黑客龙(HackerOne)向WordPress报告了这个问题,尽管DoS不包括在WordPress漏洞奖励中。然而,这是一个需要报告的漏洞。然而,WordPress的回答不是很有帮助:这样的问题应该在服务器或网络级别而不是在应用程序级别得到缓解,WordPress对此无能为力。

这在两个方面有问题。首先,许多WordPress网站都是博客和小型和微型企业网站,它们通常安装在不同提供商的共享服务器上,几乎没有技术维护。这些站点无法修复服务器或网络级别的漏洞。

其次,塔威利已经证明,只要他知道怎么做。然而,许多WordPress用户显然不知道。漏洞修复并不像想象的那么困难:将WordPress项目分叉并修复它,这样只有经过身份验证的用户才能访问负载-*。php文件而不损害wp-login.php文件的功能。他还提供了一个bash脚本来修改相关文件以修复该漏洞。

吴哲路