CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析

admin 2022年5月24日17:03:43评论111 views字数 1554阅读5分10秒阅读模式

★且听安全-点关注,不迷路!



CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析

★漏洞空间站-优质漏洞资源和小伙伴聚集地!


漏洞信息


Elementor 是全球最受欢迎的 WordPress 插件之一,可以使得网站创建者能够使用只管的视觉构建器构建专业、像素完美的网站。插件累计安装数量达到 500w+ :


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


近日 Wordfence 威胁情报团队发布了针对 WordPress Elementor 存在 RCE 漏洞的信息,编号 CVE-2022-1329 。CVSS Score 高达 9.9 。经过身份认证的用户(普通用户即可)可以上传任意 PHP 代码,从而 Getshell。影响版本为:3.6.0 – 3.6.2 :


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


环境搭建


安装 Apache 、PHP 和 MySQL 数据库。选择安装 WordPress v5.9.3 版本:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


安装配置远程调试环境。下载 `elementor.3.6.2.zip` 和 `elementor.3.6.3.zip`。上传插件并激活:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


漏洞分析


Elementor 从 v3.6.0 版本开始,引入了 `Onboarding` 模块,主要用来优化 WordPress 应用程序的 AJAX 请求操作。`elementorcoreappmodulesonboardingmodule.php` 中定义了一个 `admin_init` 的 Hook, 当任意构造一个 `admin-ajax.php` 请求(比如 `/wp-admin/admin-ajax.php?action=test` ),程序都会进入 `Onboarding` 的处理逻辑,触发断点:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


从上面的判断可以得出,请求必须是 POST 类型,并且必须携带 WordPress 的 `_nonce` 参数(可以在 WordPress 认证时获取)并验证是否正确,然后进入 `maybe_handle_ajax` 函数:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


根据 `action` 参数的取值,选择不同的处理方式,重点关注 `elementor_upload_and_install_pro` ,进入 `upload_and_install_pro` 函数:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


读取上传的文件(参数名称为 `fileToUpload`)并调用 WordPress 自带的插件安装函数 `Plugin_Upgrader#install` ,安装成果后,将调用 `activate_plugin` 激活插件:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


这里指向的插件路径为 `WP_PLUGIN_DIR . '/elementor-pro/elementor-pro.php'`。


回顾前面的分析,当 `action` 取值为 `elementor_upload_and_install_pro` 时,实际上完成的是 WordPress 正常的插件安装过程,这本身没有问题,但是从 `Onboarding` 处理 AJAX 请求的验证过程来看,只对 `_nonce` 进行了检查,并未对用户权限进行限制,这就意味着普通用户也可以安装插件,从而Getshell。

漏洞复现


从前面的分析可知,我们首先需要提取 `_nonce` ,在 WordPress 登录过程中就可以获取:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


手动构造一个插件安装包( ZIP 文件),从前面分析可知,压缩包中必须有一个 `elementor-pro` 文件夹,文件夹里面必须有一个 `elementor-pro.php` 文件,可以将 Webshell 植入其中,然后构造数据包上传:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


上传成功:


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


修复方式


CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析


增加了对当前用户权限的检查。


有兴趣获取完整漏洞分析过程的小伙伴,请加入我们的漏洞空间站-致力于打造优质漏洞资源和小伙伴聚集地!



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析

原文始发于微信公众号(且听安全):CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月24日17:03:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-1329 WordPress 500万量级插件 Elementor 远程命令执行漏洞分析https://cn-sec.com/archives/1046173.html

发表评论

匿名网友 填写信息