Apache Shiro
Apache Shiro是一个强大且易用的Java安全框架,用来执行身份验证、授权、密码和会话管理。Apache Shiro框架提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。
原理
Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序,不难知道解密的顺序为:获取rememberMe cookie,base64 decode、解密AES(加密密钥硬编码)、反序列化
而问题就出在AES加密的密钥Key被硬编码在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
利用工具
https://github.com/feihong-cs/ShiroExploit-Deprecated/releases/tag/v2.51
填入url
选择利用方式
再攻击上上开启监听
nv -lvp 6666
反弹shell
成功