Shiro 反序列化漏洞原理

        shiro默认使用 CookieRememberMeManager ,对 rememberMe cookie 做了 加密 处理,在
CookieRememberMeManaer 类中将 cookie rememberMe 字段内容先后 进行序列化 =>AES 加密
=>Base64 编码 操作。在识别身份的时候,需要对 Cookie 里的 rememberMe 字段解密。根据加密的顺序 可以推断出解密的 顺序为获取 cookie->base64 解码 ->AES 解密 -> 反序列化
        AES加密的 KEY 值被 硬编码 在代码中,可以从源码中找到 KEY 值。攻击者可以构造恶意码,将其序列化 ->AES 加密 ->base64 编码,最后作为 cookie 值得 rememberMe 字段发送, shiro 将接收到的 rememberMe 字段进行解码 - 解密 - 反序列化,如果成功,则执行恶意代码,构成攻击。
        在 1.2.4 版本前,是默认 ASE 秘钥, Key: kPH+bIxk5D2deZiIxcaaaA== ,可以直接反序列化执行恶意代码。 而在1.2.4 之后, ASE 秘钥就不为默认了,需要获取到 Key 才可以进行渗透
漏洞特征: shiro 反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值