漏洞说明
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437) Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
shiro 提供了RememberMe功能,对rememberMe的cookie做了加密处理,当用户成功登录后shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行 序列化,AES加密,base64编码。
相对的,在识别身份是会对cookie的RememberMe字段进行解密处理,解密顺序为 获取RememberMe cookie ,base64解密, AES解密, 反序列化
所以可以构造一个恶意对象,对其序列化,AES加密,base64编码之后作为cookie的RememberMe 字段发送出去,shiro会将RememberMe进行解密并反序列化,从而造成反序列化漏洞.
漏洞复现
kali : 192.168.87.128
Ubuntu : 192.168.87.129
docker-compose up -d
访问192.168.87.129:8080
使用burpsuite抓包,勾选rememberme,账号密码分别为admin
,vulhub
提交表单后,可以看到set-cookie的remeberMe=deleteMe
在kali上开启监听
nc -lvvp 6666