Shiro反序列化复现

目标网站已无法访问,部分图片以文字代替

之前一直没有复现过此漏洞,这次参加扬州网安2021,碰到此漏洞,虽然最后被忽略了(手慢交晚了)

一、判断类型

burp抓包,发现响应包返回Set-Cookie: rememberMe=deleteMe或者请求包里有rememberMe=deleteMe字段

【此图片来自互联网】

二、工具检测

刚开始用飞鸿大佬的工具,没测不出来

换了好几个工具,最后用J1anFen大牛的工具测出来并写入了shell

写入了好几个shell,只有蚁剑可以连上(菜)

三、验证

注意蚁剑连接设置编码,否则连接失败

连接shell,发现网站使用root权限运行

四、修复方案

修复方案一:升级Shiro依赖版本

Apache官方的漏洞修复采用了在代码中随机生成密钥的方式,因此可以采用升级Shiro版本为1.2.5及以上。

此方案适用于开发初期或代码依赖库较简单不会产生依赖冲突。

修复方案二:私有化硬编码密钥

采用在Shiro配置文件中加入rememberMeManager管理器来硬编码指定加密密钥,此密钥建议采用私有密钥,切勿采用网络上已有密钥。

此方案适用于代码的保密性较强或用于练习的项目。

修复方案三:随机生成密钥

在项目中新建随机生成AES加解密密钥的方法,在Shiro配置文件的rememberMeManager中调用该方法进行密钥动态生成。此方案与升级Shiro版本的本质策略相同。

此方案适用于项目后期漏洞修复,可最小化对原有项目的影响。

留下评论