Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437、Shiro-550)

0x00 漏洞原理

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

0x01 影响版本

Shiro <= 1.2.4

0x02 环境搭建

192.168.68.68    #靶机
192.168.68.168   #攻击机/接收反弹Shell

0x03 漏洞复现

cd vulhub-master/shiro/CVE-2016-4437  #进入vulhub靶场 
docker-compose up -d                  #启动Apache Shiro
访问http://192.168.68.68:8080
用工具成功找到密钥 kPH+bIxk5D2deZiIxcaaaA==
进一步探测,成功找到利用链
反弹shell
攻击机成功收到反弹过来的shell
用wireshark追踪数据流,可以看到shiro 550特征 remember以及返回的数据包中的remember=deleteMe

Shiro550跟Shiro721的区别在于: Shiro550使用已知密钥碰撞,Shiro721是使用登录后rememberMe={value}(知道已经登陆用户的合法cookie)去爆破正确的key值进而反序列化

经验分享 程序员 微信小程序 职场和发展