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值进而反序列化