前言
最近一直在整理笔记,恰好碰到实习时遇到的Shiro反序列化漏洞,本着温故而知新的思想,就照着前辈们的文章好好研究了下,整理整理笔记并发个文章。
1、ApacheShiro介绍
ApacheShiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,开发者可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
2、ShirorememberMe反序列化漏洞(Shiro-)
2.1受影响版本
ApacheShiro=1.2.4
2.2特征判断
返回包中含有rememberMe=deleteMe字段
2.3漏洞原理
在Shiro=1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AESkey后,就能够构造恶意的rememberMecookie值从而触发反序列化漏洞。
3、漏洞复现
3.1环境搭建
//获取docker镜像
dockerpullmedicean/vulapps:s_shiro_1
//启动容器
dockerrun-d-p:medicean/vulapps:s_shiro_1
最新整理网络安全/渗透测试/安全学习/份src技术文档(全套视频、CTF、大厂面经、精品手册、必备工具包、路线)一