38_渗透测试报告分析_副本、shiro反序列化漏洞介绍

一.shiro反序列化漏洞介绍

1.漏洞简介

Apache Shiro是一款开源企业常见JAVA安全框架,提供身份验证、授权、密码学和会话管理。java中的权限框架有SpringSecurity和Shiro,由于Spring功能强大但复杂,Shiro的简单强大,扩展性好因此用的还是很多。【CVE-2016-4437】

保存用户信息时,需要将对象序列化为字符串,然后由服务器传输给客户端,并保持到cookie中。

浏览器再次向服务器提交数据时,服务器需要将数据****反序列化为对象进行使用,这时就会执行恶意代码。

数据是由客户端提交的,攻击者可以修改这个数据,增加恶意代码,然后发送给服务器。

2.漏洞原理

Apache Shiro框架提供了记住我的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过相关信息进行序列化,然后使用AES加密(对称),最后再使用Base64编码处理。服务端在接收cookie时:

检索RememberMe Cookie的值

Base 64解码

AES解密(加密密钥硬编码)

进行反序列化操作(未过滤处理)

攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的Cookie,服务端反序列化时触发漏洞,从而执行命令。

3.利用过程

shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:

得到rememberMe的cookie值 –> Base64解码 –> AES解密 –> 反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值