Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
openmeetings-stale-install-admin — Apache OpenMeetings 9.1.0 - 高危 - 远程 - 权限残留 - 过期的 /install 向导插入第二个 ADMIN | Kitploit
工具/GitHubGitHub/abraxas/openmeetings-stale-install-admin
身份验证与授权权限提升漏洞分析漏洞利用Web应用程序漏洞利用实验室与实践
GitHubabraxas/openmeetings-stale-install-admin

openmeetings-stale-install-admin

Apache OpenMeetings 9.1.0 - 高危 - 远程 - 权限残留 - 过期的 /install 向导插入第二个 ADMIN

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
2天前尚未审核

Abraxas Labs - openmeetings-stale-install-admin

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  openmeetings-stale-install-admin

openmeetings-stale-install-admin

类别: 权限残留 可达性: 远程

Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation

InstallWizardPage 在 isInstalled() 之后会重定向新请求。在首次安装之前打开的 Wicket 页面会保持存活。在该过期会话上完成操作会执行 loadAll(cfg, true)。ImportInitvalues.checkInstalled 记录 "no need to install" 并且不返回。第二次完成会插入另一个 ADMIN+SOAP 用户。

ID暂无 CVE
类别权限残留
可达性远程(首次安装期间未认证访问 /install)
CWECWE-367, CWE-269
CVSS高危:8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
产品Apache OpenMeetings
受影响版本9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f) 首次安装窗口
认证过期向导会话无需认证
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1:18159。官方 9.1.0 tarball,未安装,HTTP 5080。

我固定了标签 9.1.0,剥离后为 9773c59e1af327bf988018e661f456ae9997c29f。该残留需要有一个在首次安装完成之前打开的向导页面。

攻击者能做什么

在实例尚未安装时访问 /openmeetings/install。保留该 JSESSIONID。等待操作员完成首次安装。在过期页面上 POST Finish。

方法汇聚点权限
过期 POST 向导 Finish(wizard-form-buttons-finish)ImportInitvalues.checkInstalled 记录日志并继续(ImportInitvalues.java:607-612);loadInitUserAndGroup完整性(实验验证): 第二个用户 staleadm,拥有 ADMIN、SOAP、LOGIN、DASHBOARD、ROOM 权限。SOAP 登录成功。用户列表 count=2。
相同的 loadAll(cfg, true)来自过期表单的持久化 / SMTP / 路径完整性(推断): 通过攻击者控制的向导字段重写 persistence.xml 和邮件设置。并非 SUCCESS 所必需。

实验验证 vs 推断: 第二个 ADMIN+SOAP 登录为实验验证。persistence.xml 重写为基于 loadAll 的推断。

前提条件: 攻击者在 isInstalled() 之前获取了 /install。随后操作员完成了安装。相同的 Wicket 页面 id 仍可提交。官方 docker 镜像已安装,因此这是 tarball 首次启动窗口(以及任何重装)。

保持关闭的相邻攻击面

攻击面原因
安装后全新 GET /install构造函数重定向到 /signin(InstallWizardPage.java:31-34)。实验:新会话落在 signin。
安装前未认证 SOAP 登录健康检查 installed=false;在向导完成前登录失败。
Tomcat manager / H2 console此固定版本中 manager 被排除,H2 console 关闭。

我是如何发现的

构造函数锁看起来是对 "安装后再安装" 的完整修复。checkInstalled 仍然只记录日志。Wicket 将页面存储在会话中。跨越 isInstalled() 的会话保留了一个仍会调用 loadAll 的 Finish 按钮。

admin.sh -i 是第二个 JVM,不会加载 Tomcat CryptProvider,因此本实验使用第二个 web 向导作为首次安装器,并将过期页面作为攻击者。

实验

cd lab
./run.sh

回环地址 http://127.0.0.1:18159/openmeetings。见证最后一行:

SUCCESS OPENMEETINGS-STALE-INSTALL-WITNESS

建议修复

checkInstalled 在已安装时必须返回(或抛出异常)。将 Finish 绑定到一次性安装令牌。当 isInstalled() 翻转时,从会话中移除 Wicket 页面。如果管理员已存在,不要从 loadInitUserAndGroup 插入第二个 ADMIN。

联系方式

Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]

供应商:[email protected]

下载工具