shiro反序列化(cve-2016-4437)

发布时间 2023-06-19 18:16:45作者: fugodd

一.shiro是什么。

Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的 API,可以快速轻松地对应用程序进行保护。

二.shiro550反序列化原理

编号:cve-2016-4437

在Apache shiro的框架中,执行身份验证时提供了一个记住密码的功能(RememberMe),如果用户登录时勾选了这个选项。用户的请求数据包中将会在cookie字段多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的。加密的过程是:用户信息=>序列化=>AES加密(这一步需要用密钥key)=>base64编码=>添加到RememberMe Cookie字段。勾选记住密码之后,下次登录时,服务端会根据客户端请求包中的cookie值进行身份验证,无需登录即可访问。那么显然,服务端进行对cookie进行验证的步骤就是:取出请求包中rememberMe的cookie值 => Base64解码=>AES解密(用到密钥key)=>反序列化。

三.漏洞复现

利用vulhub 打开shiro漏洞环境

使用 admin::vulhub 进行登录。

利用burp抓包。

发现返回包中含有rember me 字段,判断为shiro框架。

利用shiro探测exp

存在shiro漏洞,反弹shell至kali 端口 192.168.111.128:6666

反弹shell成功。