专栏首页绿盟科技安全情报【漏洞简析】weblogic CVE-2019-2647等相关XXE漏洞分析

【漏洞简析】weblogic CVE-2019-2647等相关XXE漏洞分析

背景

按照惯例,Oracle发布了4月份的补丁,详情见链接(https://www.oracle.com/technetwork/security-advisory/cpuapr2019-5072813.html#AppendixFMW)一看就是一堆漏洞,高危的还好几个。

CVSS 评分为9.8的暂且不分析,我们先来看看wsee模块下的几个XXE漏洞,都是给的7.5的评分,个人觉得这分给的少,毕竟可以泄露weblogic的加密密钥和密码文件,破解之后就可以获取用户名和密码。在这些漏洞中要数@Matthias Kaiser的贡献最大,高危的都是他提交的。

简单分析

从补丁对比文件来看,在wsee模块下有5个都加了xxe的防护,那我们就从xxe漏洞入手。有一个新增的文件WSATStreamHelper.java,核心代码如下:

package weblogic.wsee.wstx.wsat;
import ...
public class WSATStreamHelper {
   public static Source convert(InputStream in) {
      SAXParserFactory spf = SAXParserFactory.newInstance();
      SAXSource xmlSource = null;

      try {
         spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
         spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
         spf.setFeature("http://xml.org/sax/features/validation", false);
         spf.setNamespaceAware(true);
         spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
         xmlSource = new SAXSource(spf.newSAXParser().getXMLReader(), new InputSource(in));
      } catch (Exception var4) {
         if (WSATHelper.isDebugEnabled()) {
            WSATHelper.getInstance().debug("Failed to call setFeature in SAXParserFactory. ");
         }
      }

      return xmlSource;
   }
}

稍微懂点xxe漏洞的人都知道这是xxe的防护代码,这个文件新加到了ForeignRecoveryContext.java和WSATXAResource.java中,就拿 ForeignRecoveryContext来入手。其修复后的代码如下:

public void readExternal(ObjectInput in) throws ClassNotFoundException, IOException {
      klassVersion = in.readInt();
      this.fxid = (Xid)in.readObject();
      this.debug("ForeignRecoveryContext.readExternal tid:" + this.fxid);
      this.version = (Version)in.readObject();
      int len = in.readInt();
      byte[] eprBytes = new byte[len];
      in.readFully(eprBytes);
      this.epr = EndpointReference.readFrom(WSATStreamHelper.convert(new ByteArrayInputStream(eprBytes)));
      this.debug("ForeignRecoveryContext.readExternal EndpointReference:" + this.epr);
      ForeignRecoveryContextManager.getInstance().add(this);
   }

仔细对比下来就是EndpointReference.readFrom(WSATStreamHelper.convert(new ByteArrayInputStream(eprBytes)));WSATStreamHelper.convert是新加的,从前面代码中也可以看到在convert的过程中启用了xxe防护。再一看这个函数还是readExternal,这不就是典型的反序列化漏洞的入口吗?看官看到这就知道payload怎么来了,最典型的就是通过T3协议。

成果

可以看到调用栈如下:

漏洞防护

绿盟科技检测及防护产品已针对此漏洞(CVE-2019-2647)发布规则升级包。可为用户提供该漏洞的检测及防护能力。

防护产品规则信息:

规则版本号

升级包下载链接

规则编号

IPS

5.6.10.20147

http://update.nsfocus.com/update/downloads/id/28015

24470

5.6.9.20147

http://update.nsfocus.com/update/downloads/id/28014

5.6.8.771

http://update.nsfocus.com/update/downloads/id/28016

NF

6.0.1.771

http://update.nsfocus.com/update/downloads/id/28028

5.6.7.771

http://update.nsfocus.com/update/downloads/id/28029

检测产品规则信息:

升级包版本号

升级包下载链接

RSAS V6 web插件包

V6.0R02F00.1302

http://update.nsfocus.com/update/downloads/id/27999

RSAS V6 系统插件包

V6.0R02F01.1402

http://update.nsfocus.com/update/downloads/id/28019

RSAS V5 web插件包

5.0.18.31

http://update.nsfocus.com/update/downloads/id/28001

RSAS V5系统插件包

5.0.18.32

http://update.nsfocus.com/update/downloads/id/28032

WVSS V6 web插件包

V6.0R03F00.129

http://update.nsfocus.com/update/downloads/id/28006

本文分享自微信公众号 - 绿盟科技安全预警(nsfocus_secwarning)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【漏洞预警更新】Weblogic反序列化远程代码执行漏洞(CVE-2019-2725)处置手册

    4月17日,国家信息安全漏洞共享平台(CNVD)公开了Weblogic反序列化远程代码执行漏洞(CNVD-C-2019-48814),此漏洞存在于weblogi...

    绿盟科技安全情报
  • 【漏洞预警】Weblogic wls9-async反序列化远程代码执行漏洞处置手册V2.2

    4月17日,国家信息安全漏洞共享平台(CNVD)公开了Weblogic反序列化远程代码执行漏洞(CNVD-C-2019-48814),此漏洞存在于weblogi...

    绿盟科技安全情报
  • Weblogic远程代码执行漏洞处置建议

    北京时间10月17日凌晨,Oracle官方发布了10月份(第三季度)关键补丁更新CPU(Critical Patch Update),本次更新补丁中针对Webl...

    绿盟科技安全情报
  • [MySQL] mysql 的行级显式锁定和悲观锁

    隐式和显式锁定: 1.innodb是两阶段锁定协议,隐式锁定比如在事务的执行过程中.会进行锁定,锁只有在commit或rollback的时候,才会同时被释放 2...

    陶士涵
  • 采用Mono进行移动开发图书推荐

    今天在新浪微博上csumathboy发的微博,我也把它微博中提到的一本书在腾讯微博上发了下,引来几十条的讨论,具体参见http://t.qq.com/p/t/2...

    张善友
  • Wannacry蠕虫勒索软件处置流程及方案

    Wannacry蠕虫勒索软件处置流程及工具包 1、背景 5月12日晚,一款名为Wannacry 的蠕虫勒索软件袭击全球网络,这被认为是迄今为止最巨大的勒索交...

    FB客服
  • 解决Actuator监控下载日志乱码的问题

    最近用Actuator监控各个应用,发现在监控平台看log日志,都很正常,但用下载功能时,看到的日志总是乱码。 解决办法是在各个client端加入以下配置

    星痕
  • Go语言写Web 应用程序

    介绍 涵盖内容: 为载入和保存方法创建一个数据结构体 引用http包来创建一个web应用 引用template包来处理HTML模板 引用regexp包来验证用户...

    李海彬
  • Go语言写Web 应用程序

    介绍 涵盖内容: 为载入和保存方法创建一个数据结构体 引用http包来创建一个web应用 引用template包来处理HTML模板 引用regexp包来验证用户...

    李海彬
  • 如何在小程序中实现拍照功能

    在小程序使用的过程中,难免会用到相机组件,本文将教大家配置入门小程序camera组件的使用,并自己制作一个小程序相机的demo出来。

    1098480274

扫码关注云+社区

领取腾讯云代金券