一、漏洞原理
Apache Shiro是一种功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理,可用于保护任何应用程序的安全。
Apache Shiro框架提供了登录框记住我的功能,将用户信息加密,存储在RememberMe这个cookie中,以便下次无需登录就可访问,流程如下:
①对存有用户信息的RememberMe这个cookie先进行序列化,再进行AES加密,最后Base64加密
②服务器对cookie进行Base64解密,然后AES解密,最后进行反序列化
问题出在AES的加密密钥被写在代码里,是固定的,不能动态的改变,所以我们可以伪造用户cookie,触发反序列化,进而对漏洞进行利用,比如命令执行,反弹shell等
二、漏洞环境
win10 (192.168.8.132)攻击机
ubuntu2022(192.168.8.135)docker搭建漏洞环境
三、漏洞复现
①vulhub搭建环境
②burp抓包,确认是否使用了shiro框架
③使用工具检测漏洞是否存在
使用attack_shiro工具,下载地址:Release shiro_attack_2.2 · j1anFen/shiro_attack · GitHub
④命令执行漏洞