各安全产品对shiro反序列化的处理

防护手段:

1. 直接发现cookie中有rememberMe字段值时,直接认定为攻击。

2. 通过检测rememberMe值的长度来判断是否是攻击,这个长度按实际正常请求值的长度来设置。

3. 先将rememberMe的值进行一系列解码(base64--AES),再根据解码得到的数据来判断数据特征,通过看数据是不是常见攻击的特征来判断。

绕过方法:

第一种情况:我们可以在rememberMe中加回车符  /r 来绕过。Tomcat 9.0.19环境下可以。

第二种情况:那就只能修改payload的长度来绕过了

第三种情况:shiro在进行base64解码时,会先判断字符串中是否有非base64的字符,如果有,会丢弃非base64的字符。确保剩下的字符都是base64格式的,再解码。

我们在rememberMe的值中添加一些非base64编码的字符,就可以干扰安全产品对rememberMe的处理,从而绕过防护。也要确保我们插入的字符能被中间件正常解析。

如:!、#、$、%、&、’、(、)、.、[、]、\xeb、\xec、\xed、\xee、\xef、\xf0、\xf1等等。

其他绕过方法:

修改数据包的请求方法。这种能够利用成功就是安全产品只对常见的请求方法进行了防护。

 

 

http://changxia3.com/2022/05/09/Shiro%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E7%AC%94%E8%AE%B0%E4%BA%94%EF%BC%88%E5%AF%B9%E6%8A%97%E7%AF%87%EF%BC%89/

 

posted @   三亿人  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示