CVE-2019-0192:Apache Solr远程代码执行

ang010ela 漏洞 2019年3月29日发布
Favorite收藏

导语:研究人员发现开源企业搜索平台Apache Solr中存在远程代码执行漏洞,漏洞编号CVE-2019-0192。

安全研究人员Michael Stepankin发现了一个开源企业搜索平台Apache Solr中的漏洞:CVE-2019-0192。该漏洞是一个与不可靠数据的反序列化关键漏洞。为了更好的理解漏洞的工作院里,研究人员通过POC证明了潜在的漏洞利用和攻击。

黑客成功利用该漏洞可以在服务器应用环境下执行任意代码。比如,非认证的黑客可以利用该漏洞发送伪造的到Config API的HTTP请求,该API允许Apache Solr用户设置不同的Apache Solr元素。受影响的版本包括Solr 5.0.0到5.5.5和6.0.0到6.6.5。

Apache Solr

Apache Solr是一个基于Java库Apache Lucene的开源企业搜索平台,目前的市场占有率为35%,主要是跨国公司和机构在使用。

Apache Solr开源索引、查询和映射文档、站点和不同来源的数据,然后返回相关内容的推荐。支持文本搜索、hit highlighting(选中高亮显示)、和文档处理等功能,还支持JSON表示状态转移(REST)应用程序接口(API)。也就是说Apache Solr可以融入到其他系统和程序语言中,使用的端口为8983。

CVE-2019-0192

该漏洞是由于对到Config API的请求有限性验证不足引起的,Config API是Apache Solr用户用来配置solrconfig.xml文件的。该xml文件可以通过映射不同的请求和处理来控制Apache Solr的行为。solrconfig.xml中的参数定义了搜索请求和数据处理、管理和提取的方式。

Apache Solr是基于Java的,而Java允许对象序列化,也就是说可以将对象转化或表示为压缩的字节流。因此对象可以在网络间传输,然后Java虚拟机在接收字节流后可以反序列化使用。

Config API允许Solr的Java管理扩展(JMX)服务器通过HTTP POST请求进行配置。攻击者可以将JMX服务器指向一个恶意的远程方法调用(RMI)服务器,并利用该漏洞来触发Solr服务器上的运行代码执行。

CVE-2019-0192工作原理

攻击者可以运行命令来开启恶意的RMI服务器,如图1(上部)所示。含有JRMPListener类的ysoserial payload可以用来嵌入命令touch /tmp/pwn.txt,然后可以在有漏洞的Apache Solr上执行。图1(下部)中的POST请求可以发送给Solr来远程设置JMX服务器。

图1. 恶意RMI启动和POST请求发送

JMX可以使用远程客户端连接到JVM并监控运行在JVM中的应用。应用程序可以通过管理的beans(MBeans)的进行管理。开发者、程序员和Apache Solr用户都可以通过Java RMI在不同的协议之上访问MBeans。想在服务器上使用JMX/RMI接口的Apache Solr users可以对应地创建一个JMXService URL (service:jmx:rmi:///jndi/rmi://<target system>:<port>/jmxrmi)。

如图2所示,攻击者利用该漏洞可以使用POST请求,并通过使用set-property JSON对象的config API来设置JMXService URL (jmx.serviceUrl)。

如图3所示,会返回一个500错误,响应body中含有字符串undeclared checked exception; nested exception is。

图2. 表明JMXService远程设置的代码

图3. 出现错误500的代码

由于不适当的有效性验证,jmx.serviceUrl可以被指向攻击者控制的JMRP监听器,这会导致有漏洞的Apache Solr模拟到恶意JMRP监听器的RMI连接。并与恶意RMI服务器进行三次握手来建立到恶意RMI服务器的连接。

然后攻击者可以利用这种方式来在有漏洞的Apache Solr服务器上实现远程代码执行,如图4所示,攻击者可以发送一个恶意的伪造的序列化的对象。

 

图4. 利用CVE-2019-0192后的数据传输

如何解决?

Apache Solr建议用户尽快进行补丁修复或升级到7.0及之后版本。同时建议用户禁用或限制Config API。对运行Apache Solr的主机的异常流量进行配置和监控。

使用和管理Apache Solr的开发者、程序员和系统管理员应该使用安全设计原则,并实施最小权限原则来保护和应对该漏洞引发的威胁。

本文翻译自:https://blog.trendmicro.com/trendlabs-security-intelligence/cve-2019-0192-mitigating-unsecure-deserialization-in-apache-solr/如若转载,请注明原文地址: https://www.4hou.com/vulnerable/17068.html
点赞 5
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论