网络安全检测与防护技术
国家地方联合工程研究中心深圳分中心

靶场科普 | JAVA-shiro反序列漏洞

发表时间:2021-06-02 18:00

本文由“网络安全检测与防护技术国家地方联合工程研究中心深圳分中心——东塔网络安全学院”总结归纳


靶场介绍

JAVA-shiro反序列漏洞


今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:JAVA-shiro反序列漏洞”。

一、实验介绍

shiro在登录处提供了Remember Me这个功能,来记录用户登录的凭证,然后shiro使用了CookieRememberMeManager类对用户的登陆凭证,也就是Remember Me的内容进行一系列处理:
使用Java序列化 ---> 使用密钥进行AES加密 ---> Base64加密 ---> 得到加密后的Remember Me内容
同时在识别用户身份的时候,需要对Remember Me的字段进行解密,解密的顺序为:
Remember Me加密内容 ---> Base64解密 ---> 使用密钥进行AES解密 --->Java反序列化
问题出在AES加密的密钥Key被硬编码在代码里,这意味着攻击者只要通过源代码找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化,AES加密,Base64编码,然后将其作为cookie的Remember Me字段发送,Shiro将RememberMe进行解密并且反序列化,最终造成反序列化漏洞。

1605711463.png

二、实验目的

1. 掌握反序列的原理和漏洞利用

2. 通过shiro反序列化的漏洞复现,形成学习思路

三、实验步骤

1. 打开实验环境,熟悉此漏洞的利用方法

2. 按照解题思路,将复现完成,做好总结

四、防御方法

1. 生成新的秘钥加密
2. 在shiro的配置文件里,引用GenerateCipherKey的generateNewKey方法随机生成秘钥

速度登录https://labs.do-ta.com/ GET起来

现在注册,立得50积分哟 ✌


东塔网络安全学院在各大平台均上线了各项活动和学习内容,快快登录以下各大平台学习起来吧~


微博、腾讯课堂、知乎、今日头条:

东塔网络安全学院

抖音号:东塔网络安全培训

哔哩哔哩:东塔网络安全

了解更多活动和咨询欢迎微信添加:dongtakefu