内容简介:安全研究人员黑客成功利用该漏洞可以在服务器应用环境下执行任意代码。比如,非认证的黑客可以利用该漏洞发送伪造的到
安全研究人员 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://
如图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的开发者、程序员和系统管理员应该使用安全设计原则,并实施最小权限原则来保护和应对该漏洞引发的威胁。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。