Shiro框架漏洞复现(附修复方法)

       Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。

      在Shiro框架下,用户登陆成功后会生成一个经过加密的Cookie。其Cookie的Key的值为RememberMe,Value的值是经过序列化、AES加密和Base64编码后得到的结果。
      由于使用了AES加密,成功利用该漏洞需要获取AES的加密密钥,在Shiro1.2.4版本之前AES的加密密钥为硬编码,其默认密钥的Base64编码后的值为kPH+blxk5D2deZilxcaaaA==,于是就可得到Payload的构造流程: 恶意命令-->序列化-->AES加密-->base64编码-->发送Cookie

Shiro rememberMe反序列化漏洞(Shiro-550)

       Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。

       看响应包使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;,header中是否返回rememberMe=deleteMe值,若有,则证明该系统使用了Shiro框架:

漏洞复现

搭建vulhub环境命令如下

cd vulhub/shiro/CVE-2016-4437
docker-compose up -d

我们进入环境后,先开启抓包刷新一下页面,然后在请求包中的cookie字段中添加rememberMe=123;后查看header中是否返回rememberMe=deleteMe值,如果有,则证明使用了shiro框架

然后检测漏洞我们需要用到一个工具--shiro_attack,下载链接如下https://github.com/j1anFen/shiro_attack

打开工具后,将url端口填入目标地址中,点击爆破密钥,即可进行命令执行和上传木马

这个软件上传木马时可能无法解析单个单词,所以为了以防出错,不要乱改密码与路径

漏洞修复

1.将 Apache Shiro 更新到最新的稳定版本

2.禁用默认的 CookieRememberMeManager

3.对于所有用户提交的数据进行严格的验证和过滤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值