Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)
漏洞描述
Apache Shiro
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序可以推断出解密的顺序为获取cookie-base64解码-AES解密-反序列化。
利用过程
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。
影响版本
Apache Shiro <= 1.2.4
特征判断
请求中含有rememberMe
返回包中包含rememberMe=deleteMe
字段
漏洞复现
靶场环境
使用docker-compose vulhub搭建靶场,进入vulhub/shiro/CVE-2016-4437目录下
docker-compose up -d
默认端口为8080
利用工具
漏洞复现过程
打开靶场页面
自动重定向跳转到/login页面,尝试登录账号,勾选上Remember Me,发送登录请求
查看请求内容,请求地址为/doLogin,在username及password下,有一个rememberme字段,值为remember-me
查看响应头,set-cookie值为rememberMe=deleteMe,即为shiro框架的特征
使用ShiroAttack工具,输入url,点击爆破密钥
点击命令执行,尝试输入whoami,touch文件
查看是否成功
docker-compose exec web bash
ls
hacker.txt成功创建。漏洞利用成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义