Web安全之Openfire的插件脚本上传漏洞复现
字数 927 2025-08-18 11:37:45

Openfire插件脚本上传漏洞复现与分析

1. 漏洞概述

Openfire是基于XMPP协议的即时通讯(IM)服务器实现,存在插件上传漏洞,攻击者可上传恶意插件获取服务器控制权限。

2. 漏洞发现背景

  • 某Web服务器被植入挖矿病毒
  • 通过D盾查杀发现Openfire目录下的webshell
  • 路径中同时存在helloworld.jar恶意插件包

3. Openfire简介

  • 基于XMPP协议的IM服务器端实现
  • 提供基本功能并支持插件扩展
  • 广泛部署于各类组织中

4. 漏洞复现步骤

4.1 环境搭建

  1. 从官网下载最新版Openfire
  2. 执行exe安装文件完成安装
  3. 跳过配置管理员界面(关键漏洞点)
  4. 使用默认凭证admin/admin登录成功

4.2 漏洞利用

  1. 进入插件管理界面
  2. 上传恶意helloworld.jar插件包
  3. 访问用户接口设置页面
  4. 触发webshell执行

4.3 权限验证

  • 获取的权限为运行Openfire的用户权限
  • 通常为SYSTEM或root等高权限

5. 漏洞分析

5.1 恶意插件结构分析

helloworld.jar
├── plugin.xml          # 插件配置文件
├── web                 # Web资源目录
│   ├── WEB-INF
│   │   ├── web.xml     # Servlet映射配置
│   │   └── classes     # 包含插件主类
│   └── chakan.jsp      # 实际执行的恶意JSP
├── sqzr.jsp            # 被查杀的webshell文件
└── ...                 # 其他插件文件

5.2 关键配置文件

plugin.xml:

<plugin>
    <name>Hello World Plugin</name>
    <description>My first plugin</description>
    <author>si1ence</author>
    <version>1.0.0</version>
    <date>12/04/2018</date>
    <url>chakan.jsp</url>
    <minServerVersion>3.0.0</minServerVersion>
    <licenseType>gpl</licenseType>
    <class>com.iteye.redhacker.openfire.plugin.helloWorldPlugin</class>
</plugin>

web.xml:

<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <jsp-file>/chakan.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/hello/*</url-pattern>
</servlet-mapping>

5.3 漏洞成因

  1. 管理员配置跳过:安装过程中跳过管理员配置步骤,导致使用默认凭证
  2. 插件上传无验证:插件上传功能未对上传内容进行安全校验
  3. 权限过高:Openfire服务通常以高权限运行

6. 安全风险

  1. 服务器完全沦陷(SYSTEM/root权限)
  2. 可植入挖矿病毒、后门等恶意程序
  3. 敏感信息泄露(数据库凭证等)

7. 修复建议

  1. 修改默认凭证:安装后立即修改admin账户密码
  2. 权限降级:以低权限用户运行Openfire服务
  3. 插件审核:仅安装可信来源的插件
  4. 安全加固
    • 限制插件上传功能
    • 实现插件签名验证机制
  5. 日志监控:监控插件上传和安装行为

8. 检测方法

  1. 检查Openfire目录下是否存在可疑jar包
  2. 扫描web目录中是否存在异常jsp文件
  3. 检查数据库中的管理员凭证是否为默认值

9. 总结

该漏洞利用Openfire的以下弱点:

  • 默认凭证风险
  • 插件机制缺乏安全控制
  • 服务运行权限过高

管理员应重视系统安装配置过程中的每个步骤,避免因"跳过"操作导致安全隐患。

Openfire插件脚本上传漏洞复现与分析 1. 漏洞概述 Openfire是基于XMPP协议的即时通讯(IM)服务器实现,存在插件上传漏洞,攻击者可上传恶意插件获取服务器控制权限。 2. 漏洞发现背景 某Web服务器被植入挖矿病毒 通过D盾查杀发现Openfire目录下的webshell 路径中同时存在helloworld.jar恶意插件包 3. Openfire简介 基于XMPP协议的IM服务器端实现 提供基本功能并支持插件扩展 广泛部署于各类组织中 4. 漏洞复现步骤 4.1 环境搭建 从官网下载最新版Openfire 执行exe安装文件完成安装 跳过配置管理员界面(关键漏洞点) 使用默认凭证admin/admin登录成功 4.2 漏洞利用 进入插件管理界面 上传恶意helloworld.jar插件包 访问用户接口设置页面 触发webshell执行 4.3 权限验证 获取的权限为运行Openfire的用户权限 通常为SYSTEM或root等高权限 5. 漏洞分析 5.1 恶意插件结构分析 5.2 关键配置文件 plugin.xml : web.xml : 5.3 漏洞成因 管理员配置跳过 :安装过程中跳过管理员配置步骤,导致使用默认凭证 插件上传无验证 :插件上传功能未对上传内容进行安全校验 权限过高 :Openfire服务通常以高权限运行 6. 安全风险 服务器完全沦陷(SYSTEM/root权限) 可植入挖矿病毒、后门等恶意程序 敏感信息泄露(数据库凭证等) 7. 修复建议 修改默认凭证 :安装后立即修改admin账户密码 权限降级 :以低权限用户运行Openfire服务 插件审核 :仅安装可信来源的插件 安全加固 : 限制插件上传功能 实现插件签名验证机制 日志监控 :监控插件上传和安装行为 8. 检测方法 检查Openfire目录下是否存在可疑jar包 扫描web目录中是否存在异常jsp文件 检查数据库中的管理员凭证是否为默认值 9. 总结 该漏洞利用Openfire的以下弱点: 默认凭证风险 插件机制缺乏安全控制 服务运行权限过高 管理员应重视系统安装配置过程中的每个步骤,避免因"跳过"操作导致安全隐患。