内容简介:北京时间10月17日,Oracle官方发布的10月关键补丁更新CPU(Critical Patch Update)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191)。该漏洞允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。这个漏洞由Matthias Kaiser,loopx9,Li Zhengdong申报。如下图所示这回的补丁主要增加了两个大类黑名单
背景
北京时间10月17日,Oracle官方发布的10月关键补丁更新CPU(Critical Patch Update)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191)。该漏洞允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。这个漏洞由Matthias Kaiser,loopx9,Li Zhengdong申报。
补丁分析
如下图所示
这回的补丁主要增加了两个大类黑名单,分别是java.rmi.server.RemoteObject和com.bea.core.repackaged.springframework.transaction.support.AbstractPlatformTransactionManager,RemoteObject是用于修补漏洞编号为CVE-2018-3245的漏洞,当时笔者在报这个漏洞的过程中就将所有涉及到RemoteObject相关的poc都提交给了Oracle官方。AbstractPlatformTransactionManager这个黑名单就是用于防止Spring JNDI注入,从官方以前的黑名单上就能看到org.springframework.transaction.support.AbstractPlatformTransactionManager,但是官方没有想到在com.bea.core.repackaged的相关包还有spring的相关类。其实这两个包中的类实现几乎一样,只是来源于不同的包。
动态分析
通过前一章的静态分析已经知道CVE-2018-3191所对应的补丁,就是AbstractPlatformTransactionManager,用于防止Spring JNDI注入。在我们的PoC中主要用到JtaTransactionManager这个类。下面来看一下这个类中关键的几个地方。
JtaTransactionManager类继承自AbstractPlatformTransactionManager,实现了Serializable接口,其中私有属性userTransactionName是用于JNDI寻址。 在 Java 反序列化中,入口有很多,readObject是最常见的,定位到JtaTransactionManager.readObject方法,实现如下:
继续跟踪initUserTransactionAndTransactionManager方法的实现:
在 initUserTransactionAndTransactionManager的方法中就有基于JNDI寻址方法lookupUserTransaction 关键寻址部分代码如下:
有了如上的分析,构造PoC也是水到渠成,下面是PoC的关键代码:
更详细的关于JNDI的使用可参考作者以前的博文,这里不再重复。漏洞效果如下图:
由于这个漏洞利用的gadget是weblogic中自带的,跟JDK版本无关,所以只要系统能连外网,未禁止T3协议,漏洞就可以利用,威力巨大,请尽快升级到Weblogic最新版。
以上所述就是小编给大家介绍的《Weblogic CVE-2018-3191分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 使用动态分析技术分析 Java
- 使用动态分析技术分析 Java
- 案例分析:如何进行需求分析?
- 深度分析ConcurrentHashMap原理分析
- 如何分析“数据分析师”的岗位?
- EOS源码分析(3)案例分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Unix/Linux编程实践教程
Bruce Molay、杨宗源、黄海涛 / 杨宗源、黄海涛 / 清华大学出版社 / 2004-10-1 / 56.00元
操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及......一起来看看 《Unix/Linux编程实践教程》 这本书的介绍吧!