声明
以下内容,来自且听安全公众号的QCyber作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。
漏洞信息
Elementor 是全球最受欢迎的 WordPress 插件之一,可以使得网站创建者能够使用只管的视觉构建器构建专业、像素完美的网站。插件累计安装数量达到 500w+ :

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

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

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

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

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

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

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

这里指向的插件路径为 `WP_PLUGIN_DIR . ‘/elementor-pro/elementorpro.php’`。
回顾前面的分析,当 `action` 取值为 `elementor_upload_and_install_pro` 时,实际上完成的是 WordPress 正常的插件安装过程,这本身没有问题,但是从 `Onboarding` 处理 AJAX 请求的验证过程来看,只对 `_nonce` 进行了检查,并未对用户权限进行限制,这就意味着普通用户也可以安装插件,从而Getshell。
漏洞复现
从前面的分析可知,我们首先需要提取 `_nonce` ,在 WordPress 登录过程中就可以获取:

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

上传成功:


**修复方式
**

增加了对当前用户权限的检查。
原文链接:
https://mp.weixin.qq.com/s/YtqSaDB8Ufn0w62W2BuZ_A
本文介绍了WordPress流行的Elementor插件存在的严重远程代码执行漏洞CVE-2022-1329,该漏洞允许经过身份认证的普通用户上传任意PHP代码,影响版本为3.6.0-3.6.2。攻击者可以通过构造特定的POST请求利用此漏洞。修复措施包括增加对用户权限的检查。详细分析了漏洞的触发条件、利用过程及修复方案。
534

被折叠的 条评论
为什么被折叠?



