abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-otp-skip
类别: 2FA 绕过 可达性: 远程
Apache OpenMeetings 9.1.0。当 otp.enabled 为 true 时,TOTP 仅在 Wicket 的 SignInDialog.processOtp 中执行。UserWebService.login 先校验密码,然后调用 sessionDao.create。SOAP/REST 会签发一个不含 OTP 字段的 SID。默认 otp.enabled 为 false。实验环境将其开启。
| ID | 暂无 CVE |
| 类别 | 2FA 绕过 |
| 可达性 | 远程(仅密码,无 OTP) |
| CWE | CWE-287、CWE-304 |
| CVSS | 高危:8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 产品 | Apache OpenMeetings 9.1.0,且 otp.enabled=true |
| 认证 | 已注册用户的密码 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1:18157 |
| 方法 | 汇聚点 | 权限 |
|---|---|---|
POST /services/user/login 仅需用户名/密码 | UserWebService.login(UserWebService.java:135-143) | 完整性(实验已验证): 无需 OTP 即可获得 SID。实验:使用该 SID 保存日历,成功存储了见证数据。 |
| Wicket 仅密码(对照组) | SignInDialog.processOtp | Wicket 已关闭: 显示 OTP 挑战,无法进入仪表盘。 |
已关闭: 默认 otp.enabled=false(此遗留问题属于已启用的部署)。LDAP 搜索过滤器注入(OPENMEETINGS-2808)。
cd lab
./run.sh
最后一行:SUCCESS OPENMEETINGS-SOAP-OTP-SKIP-WITNESS
建议修复:当用户拥有 TOTP 密钥时,在 UserWebService.login 和 JAX-WS 登录中调用 OtpManager.verify。若 OTP 已启用且请求中不含验证码,则默认拒绝。
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]