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

利用工具

ShiroAttack2

漏洞复现过程

打开靶场页面

自动重定向跳转到/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成功创建。漏洞利用成功

posted @   SD_ZYL  阅读(537)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示