Realtyna Organic IDX 插件 + WPL Real Estate < 5.3.0 - 未认证任意文件上传导致远程代码执行
适用于 WordPress 的 Realtyna Organic IDX 插件 + WPL Real Estate < 5.3.0
通过硬编码的 I/O API 凭据实现未认证的任意文件上传,进而导致远程代码执行。
WPL Real Estate 插件自带一个内置的 I/O API(set_property),该 API 默认启用,且仅由一对硬编码密钥(public_key / private_key)保护。这些密钥在所有安装中完全相同——它们被嵌入在插件激活时运行的迁移 SQL 中。
该 API 通过 file[] multipart 字段接受文件上传,前缀为 image_*,但对上传的文件类型不进行任何验证。未认证的攻击者可以上传任意 .php 文件,这些文件会被存储在 wp-content/uploads/WPL/{pid}/ 下的可预测路径中,并可直接通过 HTTP 执行。
无需 WordPress 认证、无需 nonce、无需权限检查——仅凭这两串硬编码字符串即可。
Attacker Target (WordPress + WPL ≤ 5.2.0)
│ │
│ POST / (multipart/form-data) │
│ ├─ public_key = <hardcoded> │
│ ├─ private_key = <hardcoded> │
│ ├─ cmd = set_property │
│ └─ file[] = image_Nx_abc.php │
│─────────────────────────────────────────►│
│ │ API validates keys ✓
│ │ Saves file (no type check)
│ {"success": true} │
│◄─────────────────────────────────────────│
│ │
│ GET /wp-content/uploads/WPL/{pid}/Nx_* │
│─────────────────────────────────────────►│
│ PHP executed │
│◄─────────────────────────────────────────│
| 文件 | 内容 |
|---|---|
Nx_hit/Nwpl_detect.txt | 发现的 WPL 安装(检测模式) |
Nx_hit/Nwpl_shell.txt | 已确认上传成功的 Webshell,包含完整 URL 和 PID |
Nx_hit/Nwpl_canary.txt | Canary 验证结果 |
python CVE-2026-13714.py
脚本会提示输入:
> Target list: targets.txt
> Threads [1-50]: 10
> Mode [1/2/3]: 2
目标列表格式 — 每行一个目标:
example.com
https://site.com
http://192.168.1.10:8080
sub.domain.org/wordpress
wpl_settings 表)中的 I/O API 密钥wp-content/uploads/WPL/本工具严格仅供已获授权的安全测试和教育目的使用。请仅在你拥有或已获得明确书面许可的系统上使用。
未经授权访问计算机系统属于违法行为,相关法律包括但不限于美国《计算机欺诈和滥用法》(CFAA)、英国《计算机滥用法》以及全球范围内的同类法规。
作者对滥用行为不承担任何责任。使用本工具即表示您对自己的行为承担全部责任,并同意遵守所有适用的法律法规。
Nxploited — Khaled Alenazi
Telegram: @Kxploit
| 详情 | 值 |
|---|
| CVE | CVE-2026-13714 |
| CWE | CWE-434(危险类型文件的不受限上传) |
| 受影响版本 | WPL Real Estate ≤ 5.2.0 |
| 修复版本 | 5.3.0 |
| 所需认证 | 无 |
| CVSS 3.1 | 9.8 严重 |
| 攻击向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 来源 | CISA-ADP |
| 功能 | 描述 |
|---|
| WPL 指纹识别 | ?get_realtyna_platform=1 探测 + HTML 签名检测 |
| WordPress 根目录发现 | 自动检测子目录中的 WP 安装(/wp、/blog、/site 等) |
| 硬编码密钥利用 | 使用每个 WPL 安装自带的默认 I/O API 密钥 |
| Multipart 上传 | 构建与 WPL set_property 预期完全匹配的 file[] multipart 请求 |
| PID 扫描器 | 暴力遍历 wp-content/uploads/WPL/{1..N}/ 以定位已上传的文件 |
| 反向 PID 扫描 | 优先扫描最新 PID,以便在活跃站点上更快发现 |
| Canary 模式 | 安全上传 .txt 文件以验证写入权限,无需执行 PHP |
| 多线程批量扫描 | 支持并发处理,线程数可配置(1–50) |
| Nx-zD 签名 | 上传的 Webshell 携带 Nx-zD 验证标记 |
| 自动日志记录 | 结果保存到 Nx_hit/,按结果类型分文件存储 |
| 模式 | 功能说明 |
|---|
1 — 检测 | 对 WPL 安装进行指纹识别,不上传任何内容 |
2 — 上传 | 通过 I/O API 上传 Nx_*.php Webshell 并验证执行 |
3 — Canary | 上传 Nx_*.txt(安全探测)仅确认写入权限 |