• Java安全之JBoss反序列化漏洞分析


    Java安全之JBoss反序列化漏洞分析

    0x00 前言

    看到网上的Jboss分析文章较少,从而激发起了兴趣。前段时间一直沉迷于工具开发这块,所以打算将jboss系列反序列化漏洞进行分析并打造成GUI的工具集。当然反序列化回显这块也是需要解决的一大问题之一,所以下面会出一系列文章对该漏洞的分析到工具的构造进行一个记录。

    0x01 环境搭建

    首先拿CVE-2017-12149漏洞为例,进行调试分析。

    CVE-2017-12149漏洞影响版本: 5.X 及 6.X

    漏洞描述

    该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

    调试环境搭建

    远程调试

    版本要求:JBoss-EAP-7.0及其以上版本

    在Jboss的bin目录下有个standalone.bat文件,以文本的形式打开此文件,在Jboss的bin目录下有个standalone.bat文件。

    set DEBUG_MODE=false 
    set DEBUG_PORT_VAR=8787
    

    false改成true就可以改成调试模式了,8787是调试模式的端口。重启Jboss

    而5.x、6.x:

    jboss-6.1.0.Final/bin/run.conf 中#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"#即可。

    为了方便这里使用

    进去/vulhub-master/jboss/CVE-2017-12149修改docker-compose.yml 文件添加8787端口

    version: '2'
    services:
      jboss:
        image: vulhub/jboss:as-6.1.0
        ports:
          - "9990:9990"
          - "8080:8080" 
          - "8787:8787"
    

    jboss-6.1.0.Final/bin/run.conf 中#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"#

    重新启动容器即可

    docker restart 808d3fffae0c
    

    此处有坑点,个别漏洞调用链查看不了可能是确实代码,需要添加资源到idea中,而本次的这个核心漏洞组件httpha-invoker.sar,打包成jar包后无法进行断点,需要扔到jd-gui中进行反编译打包后添加到idea资源中。

    0x02 漏洞分析

    查看调用链定位漏洞位置

    直接就接受值进行反序列化了,但并不是在一个位置存在任意数据反序列化

    以上是org.jboss.invocation.http.servlet#ReadOnlyAccessFilter类的反序列化位置

    org.jboss.invocation.http.servlet#InvokerServlet同样存在任意反序列化点

    查看web.xml发现/invoker/JMXInvokerServlet/*,/invoker/readonly,/JMXInvokerServlet/等地方都可触发。

    关于CVE-2017-7504类似漏洞位置在/jbossmq-httpil/HTTPServerILServlet ,在此不做分析。

    0x03 结尾

    文章略显水分,因为JBoss这些漏洞接受过来就直接进行反序列化了,而且还是接受原生的数据并未进行加密解密处理。分析起来比较简单,但是反序列化回显的构造又成了一大问题,下篇文章再对反序列化回显进行探究。

  • 相关阅读:
    Android ELF文件格式
    AWS发布架构师认证的专业解决方案
    python django模型内部类meta详细解释
    SQL_substr功能测试
    猫学习IOS(四)UI半小时就搞定Tom猫
    使用jquery点击一个实现button或连接,进行以下div显示,在点击隐藏
    hdu2852--KiKi's K-Number(段树,求第一k的数量)
    信息安全官谁:逼近的挑战,你准备好了吗?
    VS2010使整个过程说明了安装包
    进程的创建与可执行程序的加载
  • 原文地址:https://www.cnblogs.com/nice0e3/p/14659603.html
Copyright © 2020-2023  润新知