
CVE-2017-9841 detector script
CVE-2017-9841 检测脚本,由 Massimiliano Brasile 编写
2020年1月6日,我被告知一个安全漏洞,该漏洞似乎影响大多数版本的 PrestaShop(该警告于2020年1月3日仅在 PS 团队内部共享)。经过一番挖掘,我发现问题与一个名为 PHPUnit [1] 的测试框架库有关,该库意外地被包含在某些 Prestashop 1.7 使用的生产模块中(通过 Prestashop API 或 PrestaShop 安装分发)。PHPUnit 的问题被标记为 CVE-2017-9841 [2] [3],但目前针对 Prestashop 的警告仍然有效,因为至少有一个机器人(XsamXadoo)正在扫描 PS 网站的这个问题 [4]。
从技术上讲,CVE-2017-9841 指的是能够在任何使用存在 bug 的 phpunit/phpunit 版本的应用程序上执行远程代码,2020年1月8日又发现了一个问题(4.8.28 之前和 5.x 5.6.3 之前 与 7.x 7.5.19 之前和 8.x 8.5.1 之前的版本有关 [5])。由于 phpunit 是一个著名的框架,这个问题似乎影响了主要的 PHP CMS(Prestashop, Wordpress, Drupal 等)及其插件,但仅当它们使用了该框架。为了帮助找到这些后门,必须检查你的网站根目录的每个子文件夹中是否包含此测试框架。因此,为了加快整个过程,我编写了这个快速简陋的脚本,帮助我控制我负责的所有 Prestashop 或 Wordpress 实例。
根据 PS 论坛 [4],需要检查以下模块:
但在我的测试中,我也在 ps_facetedsearch v3.2.1 模块中发现过它。在 autoupgrade v4.9+ 中未出现。
如果找到存在 bug 的 phpunit 实例,请尽可能更新其父模块,或者如果开发者不再支持则删除(删除文件夹)它们。根据 PS 论坛,你应该完全删除这些模块内的所有 vendor 文件夹,但这需要检查!
[2] https://nvd.nist.gov/vuln/detail/CVE-2017-9841
[3] https://www.cvedetails.com/cve/CVE-2017-9841
[4] https://www.prestashop.com/forums/topic/1012095-hack-prestashop-avec-xsamxadoo-bot
[5] 尚未官方确认!! 参见 https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133