Apache Shiro-550反序列化漏洞复现(vulhub)

架构介绍:

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,开发者可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

漏洞原理:

在 Shiro <= 1.2.4 中,AES 加密算法的key是硬编码在源码中,当我们勾选remember me 的时候 shiro 会将我们的 cookie 信息序列化并且加密存储在 Cookie 的 rememberMe字段中,这样在下次请求时会读取 Cookie 中的 rememberMe字段并且进行解密然后反序列化
由于 AES 加密是对称式加密(Key 既能加密数据也能解密数据),所以当我们知道了我们的 AES key 之后我们能够伪造任意的 rememberMe 从而触发反序列化漏洞。

漏洞复现:

进入环境并启动(初次启动会进行下载)

Apache Shiro-550反序列化漏洞复现(vulhub)_第1张图片

环境启动后,查看靶机IP地址

Apache Shiro-550反序列化漏洞复现(vulhub)_第2张图片

进行网页访问(http://ip地址:8080)

Apache Shiro-550反序列化漏洞复现(vulhub)_第3张图片

输入用户名与密码勾选记住选项,并用burp进行抓包

Apache Shiro-550反序列化漏洞复现(vulhub)_第4张图片

(发现响应包中存在rememberMe=deleteMe; 字样,可知道框架为shiro)

使用shiro_attack工具进行密钥的破解

Apache Shiro-550反序列化漏洞复现(vulhub)_第5张图片

Apache Shiro-550反序列化漏洞复现(vulhub)_第6张图片

此界面的命令执行中可对靶机进行控制

Apache Shiro-550反序列化漏洞复现(vulhub)_第7张图片

解决方法:

及时对Apache进行更新

如果在配置里配置了密钥, 不要使用网上的密钥, 利用官方提供的方法去生成密钥

工具连接:

链接:https://pan.baidu.com/s/1Y2z3xYXBah9g38RxP4Snlw?pwd=root
提取码:root
--来自百度网盘超级会员V2的分享

你可能感兴趣的:(安全,java)