记一次shiro反序列化漏洞验证的坑

引言

工作中接触到shiro反序列化漏洞,看了看原理,

原理

Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
那么,Payload产生的过程:
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。

影响版本

Apache Shiro < 1.2.4

特征判断

登录页面通常包含记住我的复选框,返回包中包含site-cookie:rememberMe=deleteMe字段。

过坑过程

发现可疑目标

目标网站
在这里插入图片描述
通过以上信息,结合shiro的特征,基本上漏洞就存在了。

脚本测试

github里找到了大神们的脚本,测试了半天,看提示应该是存在漏洞,但是key却没有拿到。
在这里插入图片描述
找到脚本大神请教,修改python脚本中默认的key值,把注释掉的key值全部恢复,重新跑一下脚本问题依然存在。
怎么办?
怎么办?好不容易发现个疑似漏洞却挖不出来。。。。

继续搞

在大神的提醒下,试试gcm工具,上网查了一下gcm是个啥?
shiro的升级版,大概意思是使用默认的key值了,而是使用加密后的key值,暂且这么理解吧,反正我也记不住了,需要时可以去查。

找到了一个脚本工具shiro-exploit-master,github链接:https://github.com/Ares-X/shiro-exploit

按照说明执行,结果,结果见下图:
在这里插入图片描述
成功执行任意代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值