目录
Shiro550和Shiro721的区别
判断是否存在漏洞
漏洞环境搭建
漏洞利用
利用Shiro检测工具
利用Shiro综综合利用工具
这一篇还是参考别的师傅的好文章学习Shiro的反序列化漏洞
上一篇也是Shiro的反序列化漏洞,不同的是一个是550一个是721,那么这两个有什么区别的?
Shiro550和Shiro721的区别
这两个漏洞主要区别在于Shiro550使用已知密钥碰撞,只要有足够密钥库(条件较低),不需要Remember Cookie然而Shiro721的ase加密的key基本猜不到,系统随机生成,可使用登录后rememberMe去爆破正确的key值,即利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造 RememberMe Cookie 值来实现反序列化漏洞攻击,难度高
判断是否存在漏洞
漏洞指纹:
- URL中含有Shiro字段
- cookie中含有rememberMe字段
- 返回包中含有rememberMe
漏洞环境搭建
这里的漏洞环境还是使用docker,分别执行下列命令来进行环境搭建:
git clone https://github.com/3ndz/Shiro-721.git
cd Shiro-721/Docker
docker build -t shiro-721 .
docker run -p 8080:8080 -d shiro-721
然后使用docker-compose up -d拉取漏洞环境:
然后我们可以在浏览器中访问一下
可以看到到这里环境就已经搭建完成了
漏洞利用
登录网站,并从cookie中获取cookie:
使用RememberMe cookie作为Padding Oracle Attack的前缀。加密syserial的序列化有效负载,以通过Padding Oracle Attack制作精心制作的RememberMe。请求带有新的RememberMe cookie的网站,以执行反序列化攻击。攻击者无需知道RememberMe加密的密码密钥。
加密方式:AES-128-CBC 属于AES加密算法的CBC模式,使用128位数据块为一组进行加密解密,即16字节明文,对应16字节密文,,明文加密时,如果数据不够16字节,则会将数据补全剩余字节
若最后剩余的明文不够16字节,需要进行填充,通常采用PKCS7进行填充。比如最后缺3个字节,则填充3个字节的0x03;若最后缺10个字节,则填充10个字节的0x0a;
若明文正好是16个字节的整数倍,最后要再加入一个16字节0x10的组再进行加密
Padding Oracle Attack原理 Padding Oracle攻击可以在没有密钥的情况下加密或解密密文
Shiro Padding Oracle Attack(Shiro填充Oracle攻击)是一种针对Apache Shiro身份验证框架的安全漏洞攻击。Apache Shiro是Java应用程序中广泛使用的身份验证和授权框架,用于管理用户会话、权限验证等功能。
Padding Oracle Attack(填充Oracle攻击)是一种针对加密算法使用填充的安全漏洞攻击。在加密通信中,填充用于将明文数据扩展到加密算法块大小的倍数。在此攻击中,攻击者利用填充的响应信息来推断出加密算法中的秘密信息。
Shiro Padding Oracle Attack利用了Shiro框架中的身份验证过程中的一个漏洞,该漏洞允许攻击者通过填充信息的不同响应时间来确定身份验证过程中的错误。通过不断尝试不同的填充方式,攻击者可以逐步推断出加密秘钥,并最终获取访问权限。
这种攻击利用了填充错误的身份验证响应来获取关于秘密信息的信息泄漏,然后根据这些信息进行进一步的攻击。为了防止Shiro Padding Oracle Attack,建议及时更新Apache Shiro版本,确保已修复该漏洞,并采取其他安全措施,如使用安全的加密算法和密钥管理策略。
上面描述的过程我们可以利用shiro利用工具来辅助实现:
利用Shiro检测工具
将登录后获取的set-cookie值当中的rememberMe值,将值复制下来,放到工具当中
选择shiro721,输入目标url,设置rememberMe值,点击下一步,等待即可
点击下一步后,下面的一个页面还是点击下一步,就可以进行漏洞利用页面了
等待爆破出正确的密钥后我们可以进行命令执行了
利用Shiro综综合利用工具
先输入url,点击爆破密钥
然后点击爆破利用链及回显,然后到命令执行页面尝试执行命令:
可以看到,命令成功的执行了
Shiro550与shiro721反序列化原理及复现解析 - FreeBuf网络安全行业门户
shiro反序列化漏洞原理分析以及漏洞复现 - FreeBuf网络安全行业门户
java经典漏洞复现(基于vulhub) - FreeBuf网络安全行业门户