原理解释

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

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

  硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发实践。

  硬编码密码是指在程序中采用硬编码方式处理密码。这种处理方式一方面不易于程序维护,在代码投入使用后,除非对软件进行修补,否则无法修改密码。另一方面会削弱系统安全性,硬编码密码意味着拥有代码权限的人都可以查看到密码,可以使用密码访问一些不具有权限的系统,更严重的是如果攻击者能够访问应用程序的字节码,利用一些反编译工具就能阅读到代码,可以轻易获得密码。

环境搭建

1.下载镜像

docker pull medicean/vulapps:s_shiro_1

2.运行在8091端口

docker run -d -p 8091:8080 medicean/vulapps:s_shiro_1

3.安装模块

pip3 install pycrypto

4.上传生成payload的脚本

命令行输入rz并回车,可打开上传页面,选择shiro_poc.py进行上传,注意需要进入/tmp/目录后再进行下载

5.安装ysoserial的jar文件

git clone https://github.com/frohoff/ysoserial.git

cd ysoserial/

mvn package -DskipTests

此处提示命令找不到,因此需要对 mvn进行安装

apt update
apt upgrade
apt install maven
mvn -version

注:安装mvn需要在jdk已经安装的前提下,kali默认有安装。

如下图所示则安装成功。



重新执行

mvn package -DskipTests

发现报错



上网查了之后发现原因如下,但是我也不是很懂他在说什么



所以重新开始安装java

安装java时因为kali有自带openjdk,所以安装时安装成功了,但是运行java -version的结果还是openjdk,运行javac -version显示无该命令,下载了新的kali虚拟机后安装Java还是不行,

于是就直接下载了ysoserial.jar然后上传到同一目录

复现过程

复现过程参考该篇文章

https://www.cnblogs.com/paperpen/p/11312671.html

最终复现成功。

Shiro RememberMe 1.2.4 反序列化漏洞复现的更多相关文章

  1. Shiro RememberMe 1.2.4 反序列化漏洞详细复现

    0x00 前言 今天上班的时候收到了一个复测的任务,打开一看,shiro反序列化漏洞,What?这是个什么东西,经百度查找后才知道,原来是Java的开发框架,好吧,还是没听说过..由于初测报告上的过程 ...

  2. Apache Shiro RememberMe 1.2.4 反序列化漏洞

    拉取镜像 docker pull medicean/vulapps:s_shiro_1 启动环境 docker run -d -p 80:8080 medicean/vulapps:s_shiro_1 ...

  3. Apache Shiro反序列化漏洞复现

    Apache Shiro反序列化漏洞复现 0x01 搭建环境 获取docker镜像 Docker pull medicean/vulapps:s_shiro_1 重启docker system res ...

  4. Shiro remeberMe反序列化漏洞复现(Shiro-550)

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

  5. WebLogic XMLDecoder反序列化漏洞复现

    WebLogic XMLDecoder反序列化漏洞复现 参考链接: https://bbs.ichunqiu.com/thread-31171-1-1.html git clone https://g ...

  6. Jboss反序列化漏洞复现(CVE-2017-12149)

    Jboss反序列化漏洞复现(CVE-2017-12149) 一.漏洞描述 该漏洞为Java反序列化错误类型,存在于jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤 ...

  7. jboss反序列化漏洞复现(CVE-2017-7504)

    jboss反序列化漏洞复现(CVE-2017-7504) 一.漏洞描述 Jboss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HT ...

  8. php反序列化漏洞复现过程

    PHP反序列化漏洞复现 测试代码 我们运行以上代码文件,来证明函数被调用: 应为没有创建对象,所以构造函数__construct()不会被调用,但是__wakeup()跟__destruct()函数都 ...

  9. php反序列化漏洞复现

    超适合小白的php反序列化漏洞复现 写在前头的话 在OWASP TOP10中,反序列化已经榜上有名,但是究竟什么是反序列化,我觉得应该进下心来好好思考下.我觉得学习的时候,所有的问题都应该问3个问题: ...

随机推荐

  1. easyui三

    陈旧的开发模式 美工(ui工程师:出一个项目模型) java工程师:将原有的html转成jsp,动态展示数据 缺点: 客户需要调节前端的展示效果 解决:由美工去重新排版,重新选色.Vs前后端分离 美工 ...

  2. 数据库(update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id))

    有t1 和 t2 两个表,表中的数据和字段如下: 执行 如下SQL语句: update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t ...

  3. day6_logging模块

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/11 9:12 # @Author : 大坏男孩 # @File : da ...

  4. git相关2

    初学备忘: git安装好后,目录右键 => Git Bash here _________________________ 初始化仓库 git init 仓库名 配置仓库 git config ...

  5. 设计模式-抽象工厂模式(AbstractFactory)(创建型模式)

    //以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Product.h #pragma once class AbstractProductA { public: vir ...

  6. aliyun-oss 通过redis来实现跨域上传图片到阿里 OSS并回显进度条

    public class PutObjectProgressListener implements ProgressListener {        private long bytesWritte ...

  7. @Component, @Service, @Controller, @Repository区别

    @Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理 @Componen ...

  8. 《计算机网络第7版》PDF+《计算机网络释疑与习题解答第7版》PDF

    谢希仁 链接:https://pan.baidu.com/s/1_sM9bFL0y3S1NXBz5rLyvg 提取码:po3i 计算机网络(第7版)谢希仁 · 语雀 https://www.yuque ...

  9. win10 + 3ds Max 2014 问题记录

    3ds Max 下载: https://zixue.3d66.com/popsoft_201.html VRay 下载: https://zixue.3d66.com/softhtml/showsof ...

  10. Sharding-JDBC:查询量大如何优化?

    主人公小王入职了一家刚起步的创业公司,公司正在研发一款App.为了快速开发出能够投入市场进行宣传的版本,小王可是天天加班到很晚,忙了一段时间后终于把第一个版本赶出来了. 初期功能不多,表也不多,用的M ...