Nxploited/CVE-2025-15030

GitHub: Nxploited/CVE-2025-15030

针对 WordPress User Profile Builder 插件未认证任意密码重置的自动化利用工具,实现从凭证获取到 WebShell 的完整攻击链验证。

Stars: 0 | Forks: 0

# CVE-2025-15030 User Profile Builder < 3.15.2 - 未认证任意密码重置 # CVE-2025-15030 ### User Profile Builder — 未认证密码重置 → 管理员接管 + Shell 上传 ``` ____ _ _____ ____ ____ ____ ____ _ ____ ____ _____ ____ / _\/ \ |\/ __/ /_ \/ _ \/_ \/ ___\ / \/ ___\/ _ \\__ \/ _ \ | / | | //| \ _____ / /| / \| / /| \_____ | || \| / \| / || / \| | \__| \// | /_\____\/ /_| \_/|/ /_\___ |\____\| |\___ || \_/| _\ || \_/| \____/\__/ \____\ \____/\____/\____/\____/ \_/\____/\____//____/\____/ ``` ![CVE](https://img.shields.io/badge/CVE-2025--15030-critical?style=flat-square&color=8B0000) ![CVSS](https://img.shields.io/badge/CVSS%203.1-9.8%20CRITICAL-red?style=flat-square) ![Plugin](https://img.shields.io/badge/User%20Profile%20Builder%20%3C%203.15.2-555?style=flat-square) ![Auth](https://img.shields.io/badge/Auth-None-brightgreen?style=flat-square) ![Python](https://img.shields.io/badge/Python-3.8%2B-3776AB?style=flat-square&logo=python) ![Author](https://img.shields.io/badge/By-Nxploited-00aa55?style=flat-square) ## ❶ 漏洞 | 字段 | 说明 | |---|---| | **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 | | **插件** | User Profile Builder for WordPress | | **受影响** | 所有 **3.15.2 之前** 版本 | | **认证** | **无需认证** | | **类型** | 不当密码重置 — 未认证账户接管 | | **CWE** | CWE-640 · 弱密码恢复机制 | **根本原因:** Profile Builder 插件的密码恢复流程(`action2=recover_password2`)未正确验证重置密钥或未强制执行令牌过期。通过提交一个精心构造的 POST 请求,其中包含从重置页面提取的 `password_recovery_nonce_field2`,攻击者可以在无需任何邮箱交互或有效重置令牌的情况下,为任意 WordPress 用户(包括管理员)设置新密码,仅凭用户名即可完成。 ## ❷ 工具功能 该工具对每个目标实施 **两条独立的攻击链**,并在之后可选择部署 Shell: ``` ┌────────────────────────────────────────────────────────────────────┐ │ CHAIN 1 · CORE (wp-login native reset abuse) │ │ │ │ POST /wp-login.php?action=lostpassword (trigger reset) │ │ GET /wp-login.php?action=rp&key=... (follow reset link) │ │ POST /wp-login.php?action=resetpass (inject new password) │ │ Enumerate usernames → brute strict login → verify /wp-admin/ │ ├────────────────────────────────────────────────────────────────────┤ │ CHAIN 2 · PB (Profile Builder reset-from-link) │ │ │ │ Load reset URLs from pb_reset_links.txt │ │ GET → extract nonce + userData │ │ POST action2=recover_password2 → set new password │ │ Strict login → verify /wp-admin/ access │ ├───────────────────────────────────────────────────────────��────────┤ │ SHELL UPLOAD (runs after any confirmed admin hit) │ │ │ │ Method 1 → plugin-install.php upload (Nxploited.zip) │ │ Method 2 → REST API /wp-json/wp/v2/plugins │ │ Method 3 → Plugin/Theme editor (write Nx.php directly) │ │ Verify → GET /wp-content/plugins/Nxploited/Nx.php │ │ Log → 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 ``` ### 提示 ``` Targets list file (one URL per line): list.txt Threads (concurrent sites) [5]: 5 HTTP timeout (seconds) [10]: 10 Output file for core wp-login reset successes: scan_results/wp_login_reset_success.txt Output file for Nxploited shells: scan_results/shells.txt Profile Builder reset links file (optional): pb_reset_links.txt ``` ## ❺ 输入文件 ### `list.txt` — 目标列表(必需) ``` https://target1.com target2.com http://target3.com/wordpress ``` ### `pb_reset_links.txt` — Profile Builder 重置链接(可选) 如果你已捕获 Profile Builder 的密码重置邮件链接,请逐行粘贴于此。工具将: 1. 加载重置页面并提取 `password_recovery_nonce_field2` + `userData` 2. 通过 `action2=recover_password2` 提交新密码 3. 尝试使用新凭据严格登录管理员 ``` 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` | | REST API | `/wp-json/wp/v2/users` | | 主机名启发式 | 域名首段标签 | | 默认回退 | 始终包含 `admin` | ## ❼ 管理员验证 每次登录尝试都会在进行结果写入前进行严格验证。工具检查: ``` /wp-admin/index.php → id="adminmenu", id="wpadminbar" /wp-admin/users.php → users.php indicator /wp-admin/plugins.php → plugins.php indicator /wp-admin/plugin-install.php → upload-plugin, plugin-install-tab ``` 仅当 **≥ 3 个管理员标记** 被确认时,结果才会写入磁盘。 ## ❽ Shell 上传方法 确认管理员会话后,工具按顺序尝试以下三种提权方法: | 方法 | 端点 | 触发 | |---|---|---| | **插件上传** | `/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` | Shell 验证:`GET /wp-content/plugins/Nxploited/Nx.php` → HTTP 200 ## ❾ 输出文件 | 文件 | 内容 | |---|---| | `scan_results/wp_login_reset_success.txt` | 通过 CORE 链确认的管理员命中 | | `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 ``` | 列 | 含义 | |---|---| | `KEY` | 重置流程成功触发 | | `RESET` | 服务器接受新密码 | | `ACCESS` | 确认的管理员登录次数 | | `SHELL` | 若 `Nx.php` 存活则为 `OK` | ## ⓫ 作者 ``` Nxploited (Khaled Alenazi) GitHub → https://github.com/Nxploited Telegram → @KNxploited ``` [![GitHub](https://img.shields.io/badge/GitHub-Nxploited-181717?style=for-the-badge&logo=github)](https://github.com/Nxploited) [![Telegram](https://img.shields.io/badge/Telegram-@KNxploited-2CA5E0?style=for-the-badge&logo=telegram)](https://t.me/KNxploited) ## ⓬ 免责声明 ``` FOR AUTHORIZED SECURITY RESEARCH AND EDUCATION ONLY. The author bears zero responsibility for any use of this tool against systems the operator does not own or have explicit written permission to test. Unauthorized use violates the CFAA, CMA, and equivalent laws worldwide and may result in criminal prosecution. You alone are responsible for your actions. ``` © 2025 Nxploited · User Profile Builder < 3.15.2 · Fixed in 3.15.2
标签:CRITICAL, CVE-2025-15030, CVSS 9.8, CWE-640, Nonce绕过, Shell上传, Token重用, User Profile Builder, WordPress, WordPress安全, 任意密码重置, 协议分析, 密码策略, 密码重置, 插件, 操作系统监控, 未认证, 权限提升, 管理员接管, 账户接管, 身份验证绕过, 逆向工具