weblogic修改控制台ip_【漏洞分析】WebLogic未授权命令执行漏洞(CVE202014882/CVE202014883)...

01

漏洞概述

WebLogic是美国Oracle公司出品的application server,确切地说是基于Java EE架构的中间件。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

未经身份验证的远程攻击者可通过构造特殊的HTTP请求,利用该漏洞,在受影响的WebLogic Server上执行任意代码。

02

影响范围

Oracle Weblogic Server 10.3.6.0.0

Oracle Weblogic Server 12.1.3.0.0

Oracle Weblogic Server 12.2.1.3.0

Oracle Weblogic Server 12.2.1.4.0

Oracle Weblogic Server 14.1.1.0.0

03

漏洞分析

使用Vulhub搭建环境:Vulhub - Docker-Compose file for vulnerability environment 。

以root权限进入WebLogic容器,开启WebLogic debug模式,开放相应的docker端口,进而使用IDEA进行远程调试。

 CVE-2020-14882 

通过特殊构造的HTTP请求,绕过控制台组件的身份验证:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal

1a5f8b4143ca59cfb89bf594ec2ad511.png

可以看到此处是URL二次编码,原始编码:%252e%252e%252f,一次URL编码:%2e%2e%2f,二次URL编码:../ 。

该漏洞是Console的未授权访问漏洞,可通过静态资源文件,使Netuix渲染后台页面绕过路径权限的校验。

WebLogic启动后,管理平台对应的组件为WebLogic Console。想要理清路由对应的Servlet映射关系,就需要查看/console下相关的xml配置文件。

8b03496d966c6c6765fc8f87b1718bc6.png

可以看到其对应的Servlet为AppManagerServlet 。

e55a6f61075a227dbec84925bb02cd1e.png

跟进初始化流程。

120ac9a3ba27e92151a57c92345e5dbb.png

02892e83fe892c513572b248e5fe352c.png

3c95a676a684cc8f215fb4728999bff6.png

可以看到初始化流程为:

weblogic.servlet.AsyncInitServlet.init( ) ->

weblogic.servlet.AsyncInitServlet.initDelegate( ) ->

weblogic.servlet.AsyncInitServlet.createDelegate( )

这里的this.SERVLET_CLASS_NAME就是xml中的:

c9985e949717b764268e7ae2bef1e3ba.png

所以初始化过程实际上是实例化了com.bea.console.utils.MBeanUtilsInitSingleFileServlet,并调用了其init( )方法。在继续跟进分析之前,先来分析以下其绕过路径的权限校验。

61a723889d5bdd8e45e3274bab15a407.png

WebLogic是在

weblogic/servlet/internal/WebAppServletContext.class中完成权限校验的。

根据web.xml,可知WebLogic对/css/ /images/ /common/路径没有做认证的需要。

cb42e2f2ef4da2601073e0bc9c2fc2d6.png

securedExecute中调用了checkAccess,跟进具体情况。

2e1706a6af708919d7c8fd23501fd686.png

由于访问的非受限路由,所以此处的var5 = checkAccess为null,跳过了权限验证从而访问相关资源。

下面回到之前的Request初始化解析过程。

439fd7f5a5243a7f2e53ebca34bed8e8.png

红框内容即为WebLogic对URL的原始读取点,当URL中不存在“;”时,就会继续调用super.service 。针对CVE-2020-14882的补丁也是在此基础上,增加了黑名单限制。

继续跟进其父类SingleFileServlet的service 。

2b5f35e853a46ace88bfc06ec171704b.png

在此处完成AppContext的初始化之后,就进入了真正处理请求的UIServlet 。

不管何种请求,都会来到doPost,并在这里调用createUIContext 。

7369eb185892b17393606d58098cd610.png

9a593a9447f1816f1a929959766b2d4f.png

可以看到在进入createUIContext之前,已经过了一次URL解码。

53c5bca6aa1c33d9b6c20956943fb8bd.png

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

f85b030c4a43163154cb3a7e285e7a23.png

 CVE-2020-14883 

通过上述方法,进入的控制台程序。

b9df25f4584cbdba3692df5253c73a5a.png

通过正常登录,访问的控制台程序。

47f973c98dc692ef6fc1e3da0e6267f2.png

可以看到通过未授权访问的后台与正常登录的后台相比,由于权限不足,缺少部署等功能,无法安装应用,所以也无法通过部署项目等方式直接获得权限,但可结合CVE-2020-14883进行任意代码执行。

通过静态资源文件,绕过路径权限的校验,WebLogic会将handle中的参数传入HandleFactory执行任意代码。

0298905f371cb3387cec31652cfbdc8d.png

可利用如上方式,进行恶意代码执行。

04

修复建议

Oracle官方已发布针对CVE-2020-14882漏洞的补丁,但该补丁存在被绕过的风险。建议受影响用户临时关闭WebLogic后台/console/console.portal的对外访问。

05

总结

该漏洞实际上是一个认证绕过+命令执行漏洞。

1、通过请求原本无需认证的资源路径绕过认证;

2、利用../进行目录穿越,使Netuix在初始化语法树时,读取对应的后台模板文件;

3、在Netuix生命周期中,通过组件对应的处理流程,触发Handle流程;

4、组件处理流程会将请求中以handle结尾的参数的值作为参数传入getHandle方法中,完成反射调用。

   安博通 ,可视化网络安全技术创新者    威胁情报【漏洞预警】XStream小于1.4.14远程代码执行漏洞(CVE-2020-26217)【漏洞分析】关于mysql-connector-java连接时的反序列化【漏洞预警】Apache Shiro绕过权限漏洞(CVE-2020-17510) e86fa74086f52891d65ab52808592fd2.gif

点击,了解安博通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值