CVE-2019-0227: Apache Axis RCE

栏目: 服务器 · Apache · 发布时间: 5年前

内容简介:Apache Axis™是一个我们的目标仍在使用过时的版本,因此我们觉得值得深入挖掘,看看是否有可利用的漏洞。最后,我们找到了一个RCE漏洞,该漏洞是由于在默认的示例中使用了过期的硬编码域名作为默认安装。Apache官方为该漏洞签署编号:CVE-2019-0227。现在,我们已经购买了过期域名(www.xmltoday.com)从而防止该漏洞被恶意利用。在本文中,我们将在本地环境中(无需域名)为你演示这个漏洞,同时这个漏洞对Axis2也有影响。如果你在服务器的Apache Axis或Axis2的找到服务端请

概述

Apache Axis™是一个 简单对象访问协议 (SOAP)引擎。在最近的一次红队行动中,我们发现目标装有老版本的Apache Axis(1.4)。现在较新的有Apache Axis2, Apache CXF,和Metro等。尽管Apache Axis已经过时,但它仍然在许多情况下被使用,例如使用Axis构造的项目难以重写或者项目中含有使用SOAP编码的服务。

我们的目标仍在使用过时的版本,因此我们觉得值得深入挖掘,看看是否有可利用的漏洞。最后,我们找到了一个RCE漏洞,该漏洞是由于在默认的示例中使用了过期的硬编码域名作为默认安装。Apache官方为该漏洞签署编号:CVE-2019-0227。现在,我们已经购买了过期域名(www.xmltoday.com)从而防止该漏洞被恶意利用。在本文中,我们将在本地环境中(无需域名)为你演示这个漏洞,同时这个漏洞对Axis2也有影响。

Axis

如果你在服务器的Apache Axis或Axis2的找到服务端请求伪造(SSRF)漏洞,你也可能实现目标服务器的代码执行。 在Ambionics Security的博客文章 中有类似的介绍。因为涉及到产权保护,我不会介绍那篇文章的太多细节,总而言之:Axis以管理员权限处理localhost的请求,攻击者可以通过SSRF漏洞修改HTTP GET请求部分来伪装成localhost用户。

漏洞发现

根据前面我们的结论,我们应该在Axis默认或核心代码部分找出一个SSRF漏洞。在Axis默认安装程序中,会安装一个名为“StockQuoteService.jws”的默认示例web服务。这个服务引导用户了解他们可以在Java Web服务上做些什么。这里我们的示例web服务可以从外部网络的URL中获取股票价格。查看服务器中的代码,可以看到该服务发送一个HTTP请求至www.xmltoday.com来获取XML内容,进一步解析响应展示出股票价格。从下图你可以看到相关代码:

CVE-2019-0227: Apache Axis RCE

XMLUtils.newDocument 用于从解析的目标域名中检索XML文档。由于用户可以控制发送给www.xmltoday.com的 symbol 字符,我的第一个想法是看看返回什么类型的数据以及我是否能以某种方式操纵修改它。当访问www.xmltoday.com时,我有些惊讶,因为这个域名正处于待售状态。

CVE-2019-0227: Apache Axis RCE

www.xmltoday.com正在出售,所以这意味着我们可以购买它,然后将它设置重定向到某个精心构造的 localhost URL。组合这点还有SSRF与RCE的一些小技巧,我们也许能够获取任意Axis服务器上的远程代码执行权限。为了验证想法,我们先研究 XMLUtils.newDocument 函数是如何处理重定向的。下图展示了 XMLUtils.newDocumentHttpURLConnection 属性。

CVE-2019-0227: Apache Axis RCE

查看Axis源码中的XMLutils部分,我们可以发现 setInstanceFollowRedirects 属性设置为 ture 。从而,我们确定了 XMLUtils.newDocument 函数将会遵循重定向流程。

为了验证,我们购买了 www.xmltoday.com 域名,然后能够获取所有安装有Apache Axis服务器的任意代码执行权限。同时,我们也防止了有人购买这个域名攻击其他网站。

其他攻击方法

拥有这个域名的使用权其实并不是滥用 StockQuoteService.jws 和Axis服务器内部请求的唯一方法。由于请求通过HTTP实现,这意味攻击者(与Axis处于同一网段)能够发动中间人攻击,然后等待用户触发 StockQuoteService.jws ,从而重定向请求至 localhost ,然后再使用SSRF的一些把戏。

攻击步骤:

localhost
StockQuoteService.jws

演示

在安装了Axis1.4的Apache Tomcat 8.5上,我们利用其默认自带的 StockQuoteService.jws 验证触发了该漏洞。如下gif所示:

CVE-2019-0227: Apache Axis RCE

Poc

MITM攻击的漏洞概念证明已放至 Github

结论

值得注意的是,我们在Axis2上至今仍没有发现会发出HTTP请求的默认服务。如果你发现运行在Axis2服务器上的某个服务会发出HTTP请求,或许它也是可利用的。

如果你仍然在使用Axis服务,请删除Axis根目录的 StockQuoteService.jws 。同时,请确保你运行在Axis或Axis2上的任何服务或库不执行HTTP请求或者允许用户发出HTTP请求。而是使用HTTPS或验证SSL证书。Rhino安全实验室已经控制域名www.xmltoday.com,防止这个漏洞在互联网上被利用,但是Axis的漏洞在内部网络仍然可以被利用。Apache团队已经推出 Axis的补丁程序 ,该修补程序可以防止滥用 XMLUtils.newDocument 重定向。

时间表

01/15/2019 - 向Apache报告漏洞

01/27/2019 - Apache确认漏洞并接受报告

03/12/2019 - Apache推出了SSRF补丁

04/02/2019 - Apache签署CVE-2019-0227


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

微信小程序(开发入门及案例详解)

微信小程序(开发入门及案例详解)

李骏、边思 / 机械工业出版社 / 2017-3-1 / 59.0

本书可分为3部分,第一部分作为基础章节,介绍了第一个小程序的搭建流程,让大家能快速上手;同时对小程序框架原理进行了详细介绍,为后面学习组件、API打下基础。 第二部分对小程序组件、API进行介绍,对组件、API的使用、注意事项进行详细讲解,并给出示例代码。 最后一部分精选5个由浅入深的案例,对小程序研发进行实战讲解,涵盖了实际项目中可能涉及的技术方案和使用方法,具备很强的实战意义。 ......一起来看看 《微信小程序(开发入门及案例详解)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具