shiro反序列化搭建、利用、复现、漏洞原理

链接: 看不懂可以看我最新写的shiro
链接: 看不懂可以看我最新写的shiro
链接: 看不懂可以看我最新写的shiro
链接: 看不懂可以看我最新写的shiro

1.shiro反序列化漏洞介绍

1.1.漏洞原理

在Shiro框架下

  1. 框架供了记住密码的功能(RememberMe)用户登陆成功后会生成一个经过加密的Cookie
  2. 其Cookie的RememberMe的Value的值是经过序列化、AES加密和base64编码后得到的结果。
  3. 由于使用了AES加密,在Shiro1.2.4版本之前AES加密默认密钥的Base64编码值为kPH+bIxk5D2deZiIxcaaaA==,于是就可得到Payload的构造流程:

恶意命令–>序列化–>AES加密–>base64编码–>发送Cookie–>回显数据–>数据解码
其中

1.2.漏洞特征

  1. 未登录的情况下,请求包的cookie中没有rememberMe字段返回包set-Cookie里也没有deleteMe字段
  2. 登录失败的话,返回包set-Cookie里有rememberMe=deleteMe字段
  3. 不勾选记住密码,登录成功后,返回包set-Cookie里有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有RememberMe字段
  4. 勾选记住密码,登录成功后,返回包set-Cookie里有rememberMe=deleteMe字段,还会有remember字段,之后的所有请求中Cookie都会有rememberMe字段
  5. 可以在cookie后面自己加一个rememberMe=1,看返回包有没有rememberMe=deleteMe

shiro反序列化漏洞搭建


安装docker

sudo apt-get install -y docker-compose

在这里插入图片描述


从镜像仓库拉取镜像

docker pull medicean/vulapps:s_shiro_1

我的已经下载好了,如下图
在这里插入图片描述


开启shiro漏洞网页

默认端口为8080,下面命令给他换成80端口,如果占用可以设置其他端口

docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

在这里插入图片描述
然后访问linux的IP地址就可以看见网页了,说明你搭建成功了
在这里插入图片描述


shiro反序列化漏洞利用复现

这里我们使用图形工具进行利用,简单易懂适合新手小白。

shiro反序列化漏洞综合利用工具v2.2

在这里插入图片描述


1.输入URL,检测是否存在shiro框架

在这里插入图片描述


2爆破密钥

如果:爆破成功->自动填写密钥
如果:爆破失败->指定密钥为空
一般密钥是这个,可以试试

kPH+bIxk5D2deZiIxcaaaA==

在这里插入图片描述


3.检测当前shiro框架利用链(建议直接爆破)

建议直接爆破,如图,我检测后返回我未找到构造链,所有我还是得爆破
在这里插入图片描述


4.输入URL,检测是否存在shiro框架

爆破利用链成功后显示请尝试进行功能区利用,这样我们基本就算成功了
在这里插入图片描述


5.命令执行

可以执行linux命令了

whoami

在这里插入图片描述

关闭shiro

查询当前运行容器ID

docker ps

关闭容器

docker stop ID

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shiro是一个被广泛应用于Java应用程序中的安全框架,它提供了身份验证、授权、会话管理等功能。由于Shiro在处理用户会话序列化时存在一些安全漏洞,攻击者可以利用这些漏洞进行反序列化攻击。 反序列化攻击是一种利用Java对象序列化机制的攻击方法。攻击者可以通过构造恶意的序列化数据,将其传递给目标应用程序,然后利用漏洞触发目标应用程序对恶意数据的反序列化操作。这样一来,攻击者就能够在目标系统上执行任意代码,从而导致严重的安全问题。 为了利用Shiro反序列化漏洞,攻击者需要先找到目标系统中使用了Shiro的应用程序。然后,攻击者可以使用开源的反序列化利用工具,如ysoserial或ShiroExploit,生成恶意的序列化数据。这些工具可以方便地构造包含恶意代码的序列化对象,并将其序列化为字节流。 一旦攻击者生成了恶意的序列化数据,他们就可以通过各种方式将其传递给目标应用程序,例如通过网络传输、文件上传等方式。当目标应用程序接收到这些恶意数据并进行反序列化操作时,恶意代码就会在目标系统上执行。 为了防止Shiro反序列化利用工具的攻击,开发人员可以采取以下措施: 1. 及时更新Shiro版本:Shiro开发团队会定期修复漏洞并发布新版本。开发人员应及时更新Shiro框架,以修复已知的反序列化漏洞。 2. 停用或限制不必要的Shiro功能:如果应用程序不需要某些Shiro功能,开发人员可以将其禁用或限制,以降低攻击面。 3. 输入验证与过滤:开发人员应该对用户输入进行严格的验证和过滤,以防止恶意的序列化数据被传递到应用程序中。 4. 序列化对象白名单:在反序列化时,开发人员可以使用白名单机制,限制只允许特定的序列化对象进行反序列化操作。 总之,Shiro反序列化利用工具是一种攻击手段,开发人员应该重视相关安全漏洞,并采取适当的措施来保护应用程序免受此类攻击的影响。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米汤爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值