0x02 漏洞概述 漏洞编号CVE-2020-13957 在特定的Solr版本中ConfigSet API存在未授权上传漏洞,攻击者利用漏洞可实现远程代码执行。...0x05 漏洞复现 1、将 \server\solr\configsets\_default\conf目录下的solrconfig.xml文件中params.resource.loader.enabled...的值设置为true(为远程命令执行做准备),conf目录下所有文件打包成一个压缩文件 2、通过上传API将zip上传 curl -X POST --header "Content-Type:application...4、根据CREATE得到的新configset创建恶意collection curl "http:/127.0.0.1:8983/solr/admin/collections?...后configset API只会检测第一次而产生未授权漏洞,看了很多文章都是直接上传一个configset之后collection感觉上有些问题,于是便在开篇写了我认为的利用链,如果有疑问欢迎师傅一起沟通
早期的solr仅仅支持主从架构模式,这种架构可以提高集群的吞吐量和可靠性,当面临越来越多的数据时,并不能提升检索性能,所以在solr4.x之后,开始支持cloud模式的集群,可以将一份超大索引水平切分到多台机器上...基础环境如下: Centos6.5 JDK1.7 Apache Solr5.4.1 Apache Zookeeper3.4.6 下面看下如何安装集群: 假设外置zk集群已经搭建完毕,如果不知道怎么安装...(二)常用命令 configset api操作: Java代码 //查看zk里面的有多少个collection curl http://localhost:8983/solr/admin/.../solr stop -all 一些api: Java代码 curl http://localhost:8983/solr/admin/collections?...如果配置文件更新,不需要分发到各个机器上,最多reload下core (2)Elasticsearch的不依赖zookeeper,master选举通过找到node.master=true的所有节点,
在分布式索引中,原来的大索引,将会分成多个小索引,solr可以将这些小索引返回的结果合并,然后返回给客户端。 二、特色功能 SolrCloud有几个特色功能: 集中式的配置信息使用ZK进行集中配置。...更强大的是,它还能自动的在其它机器上帮你把失败机器上的索引Replication重建并投入使用。 近实时搜索立即推送式的replication(也支持慢推送)。可以在秒内检索到新加入索引。...SolrCloud中使用的配置是在Zookeeper中的,而传统的Solr Core的配置文件是在磁盘上的配置目录中。...当进行索引操作时,SolrCloud将索引操作请求传到此Shard对应的leader,leader再分发它们到全部Shard的replicas。...最好可以提供绝对路径 -z Zookeeper IP 端口,多个zk用”,” 分隔 SolrCloud是通过Zookeeper集群来保证配置文件的变更及时同步到各个节点上,所以,可以将配置文件上传到
Solr主要是做数据搜索的,那么Solr的数据是从哪里来的呢?总不能一条一条的插入吧。Solr也有这方面的考虑,比如配置Dataimport将mysql数据批量导入Solr中。...上传文件到指定Znode -- collection1处 Solr官方提供了一个Zookeeper插件 -- zkcli.sh,使用该工具,可以实现将本地文件上传到zookeeper的Znode上。...具体参见链接:使用zkcli.sh来管理SolrCloud配置文件 # 将managed-schema、solrconfig.xml、solr-data-config.xml、elevate.xml上传至指定.../usr/lib/ambari-infra-solr/example/example-DIH/solr/db/conf目录下;SolrCloud里面也有默认的一组 configset配置组,位置在 Zookeeper...参数说明: name:将被创建的集合的名字 config set:集合使用的配置组,位置在Zookeeper上面。创建集合之前,必须保证zookeeper上面有所选择的config set。
的API。...三、重要的配置文件 Solr5的主要配置文件有 solrconfig.xml和 managed-schema,另外一些还有 solr.xml, 数据导入配置, ZooKeeper配置等。...Cluster集群: Cluster是一组Solr节点,逻辑上作为一个单元进行管理,整个集群必须使用同一套schema和SolrConfig。 2. Node节点: 一个运行Solr的JVM实例。...SolrCloud中使用的配置是在Zookeeper中的,而传统的Solr Core的配置文件是在磁盘上的配置目录中。 5....Solr可以以内嵌的Zookeeper运行,也可以使用独立的Zookeeper,并且Solr官方建议最好有3个以上的主机。 zookeeper的主要作用有: 集中配置存储以及管理。
是Solr默认使用的模式文件的名称,它支持在运行时动态更改,data-config文件可配置为xml形式或通过请求参数传递(在dataimport开启debug模式时可通过dataConfig参数传递)...然后尝试了使用绝对路径配置,绝对路径也能在web界面看到,但是solr默认不允许使用除了创建的core目录之外的配置文件,如果这个开关设为了true,就能使用对应core外部的配置文件: ? ?...后来在回头去查阅时在Solr Guide 7.5文档[3]中发现通过configSet参数也能创建core,configSet可以指定为_default与sample_techproducts_configs...processor(必须):值必须是 "XPathEntityProcessor" url(必须):用于调用REST API的URL。...4.3 PoC第三阶段--无外连+有回显 这个阶段的PoC来自@fnmsd师傅,使用的是ContentStreamDataSource[7],但是文档中没有对它进行描述如何使用。
,可以由使用该模式的用户手动编辑,managed-schema是Solr默认使用的模式文件的名称,它支持在运行时动态更改,data-config文件可配置为xml形式或通过请求参数传递(在dataimport...然后尝试了使用绝对路径配置,绝对路径也能在web界面看到,但是solr默认不允许使用除了创建的core目录之外的配置文件,如果这个开关设为了true,就能使用对应core外部的配置文件: 后来在回头去查阅时在...Solr Guide 7.5文档中发现通过configSet参数也能创建core,configSet可以指定为_default与sample_techproducts_configs,如下表示创建成功,...(必须):值必须是 "XPathEntityProcessor" url(必须):用于调用REST API的URL。...PoC第三阶段--无外连+有回显 这个阶段的PoC来自@fnmsd师傅,使用的是ContentStreamDataSource,但是文档中没有对它进行描述如何使用。
环境说明 一、Solr's zkcli.sh Solr官方提供了一个Zookeeper插件 – zkcli.sh,使用该工具,可以实现将本地文件上传到zookeeper的Znode上。...使用案例: 查看zookeeper上的某文件: /usr/lib/ambari-infra-solr/server/scripts/cloud-scripts/zkcli.sh -zkhost node96....xdata:2181,node97.xdata:2181,node98.xdata:2181 -cmd get /infra-solr/configs/collection5 下载zookeeper上的某文件.../collection1 与ambari-infra-solr不适配的命令 将本地文件夹上传到zookeeper /usr/lib/ambari-infra-solr/server/scripts/cloud-scripts...solrConfigs上传到了 zookeeper上的 /configs/myconf,这与ambari-infra-solr的zookeeper的路径不符,不符合我的需求。
1.1.2 Zookeeper可以干哪些事情 1、配置管理 在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。...一般我们可以用一个集群来提供这个配置服务,但是用集群提升可靠性,那如何保证配置在集群中的一致性呢? 这个时候就需要使用一种实现了一致性协议的服务了。...比如在一个分布式环境中,为了提高可靠性,我们的集群的每台服务器上都部署着同样的服务。但是,一件事情如果集群中的每个服务器都进行的话,那相互之间就要协调,编程起来将非常复杂。...的安装包上传到服务器 第二步:解压缩。...集群的搭建 1.6.1 第一步 把solrhome中的配置文件上传到zookeeper集群。
本文主要介绍如何在CDP-DC集群上安装部署Knox。...使用Knox,企业可以放心地将Hadoop REST API扩展到没有Kerberos复杂性的新用户,同时还可以保持对企业安全策略的遵从性。...• 增强安全性:在不公开网络细节的情况下公开Hadoop的REST / HTTP服务,提供现成的SSL。 • 集中控制:集中实施REST API安全,将请求路由到多个Hadoop集群。...HDFS,Ranger,Solr,Zookeeper 对于需要Apache Ranger进行授权的用户。带Ranger的HDFS。HDFS取决于Zookeeper,而Ranger取决于Solr。...HDFS,Zookeeper HDFS取决于Zookeeper。 没有可选的依赖 对于不希望将Knox与HDFS或Ranger集成的用户。
apache-zookeeper-3.6.3-bin/data下创建一个文件myid,在myid文件中写入数字1,然后保存并关闭 2.启动zookeeper 进入zookeeper解压目录下的bin...目录,目录结构如下 启动zookeeper使用zkServer.cmd来启动即可 启动Solr 上传配置文件 启动Solr前需要把Solr单机运行时的配置文件上传到Zookeeper服务,否则会影响Solr...创建collection操作,本人这里使用solr的样例目录example-DIH作为SolrCloud运行的配置基础,基于这个配置版本修改并上传到zookeeper服务,单机运行时的配置文件如下图:...进入目录 d:\solr-8.9.0\server\scripts\cloud-scripts,如下图: 可以发现该目录下有可执行文件,我们就是通过该目录的可执行文件进行配置文件上传到zookeeper...; Client is connected to ZooKeeper 看到上述输出结果,标识配置文件上传成功了,我们在后续的管理控制台会讲到如何查看配置文件 启动参数 SolrCloud方式命令跟单机的启动方式不同
Integration层 在Atlas中,用户可以使用以下的两种方式管理元数据: API: Atlas的所有功能都通过REST API向最终用户暴露,该API允许创建,更新和删除类型和实体。...Messaging: 除了API之外,用户还可以选择使用基于Kafka的消息传递接口与Atlas集成。这对于将元数据对象传递到Atlas以及使用Atlas使用可以构建应用程序的元数据更改事件都很有用。...Admin UI使用Atlas的REST API来构建其功能。...zookeeper hive等依赖的版本修改成自己环境中一致的版本(或者兼容的版本) 父工程pom文件 zookeeper.version>3.4.14zookeeper.version> 文件补充 创建文件夹将,atlas所需要的文件拷贝过去。 将编译内置HBase以及solr源码目录distro/target/conf下的文件拷贝到上述的上图的conf目录。
前面说到,Solr在api层面已经有各种功能的接口,缺的就是一个SQL语法解析器,以及如何与最新的Java8的对接?...所以在Solr6.x里面,引入两个 最重要的东东就是: (1)引入了Facebook开源的大数据SQL检索框架Presto的SQL Parser (2)使用Java8的Streaming Api...\webapp\WEB-INF目录下,新建一个classes目录,将其词库文件全部放进去然后将IK的jar包,放入solr\server\solr-webapp\webapp\WEB-INF\lib下。...在SolrCloud集群模式中,是需要把某个collection下的conf下的所有文件,上传到zookeeper上的,所有的shard都会 从zk上加载所需的文件,包括一些词库的配置,这个时候,放在本地磁盘上的词库...,是不会被识别的,所以你需要把上传的词库 文件一起上传到zk上,然后配置合理的路径即可,任何文件的更新,都需要reload整个collection才能更新(solr6之前是需要relaod所有的shard
SolrCloud 是基于 Solr 和Zookeeper的分布式搜索方案,它的主要思想是使用 Zookeeper作为集群的配置信息中心。...-3.4.6.tar.gz solr-4.10.3.tgz 步骤: (1)搭建Zookeeper集群(我们在上一小节已经完成) (2)将已经部署完solr 的tomcat的上传到linux (3)在linux...~]# cp -r tomcat-solr /usr/local/solr-cloud/tomcat-4 (4)将本地的solrhome上传到linux (5)在linux中创建文件夹 /usr/local...需要把 solrhome下collection1/conf 目录上传到zookeeper。上传任意 solrhome 中的配置文件即可。...我们需要使用solr给我们提供的工具上传配置文件: solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh 将solr-4.10.3压缩包上传到linux,
以上步骤,在tomcat03,tomcat04上重复执行,但是3个端口一定要注意不能重复 向tomcat下部署solr 把单机版的solr工程复制到tomcat下即可 solr在别的机子上,用FileZilla...分别是对应的ip及端口号 vim solrhome01/solr.xml ? ? ? ? 把配置文件上传到zookeeper。...需要使用 /root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh命令上传配置文件。...把/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。...将集群分为两片,每片两个副本。 http://192.168.1.200:8080/solr/admin/collections?
它可以创建,删除,修改或响应元数据对象上的查询。 “passive”实例将接受用户请求,但会使用HTTP重定向将其重定向到当前已知的“active”实例。...使用Atlas REST API:由于Atlas公开了RESTful API,因此可以使用任何标准REST客户端,包括其他应用程序中的库。...状态检查是使用REST URL /api/atlas/admin/status上的HTTP GET完成的,仅当HTTP响应包含字符串ACTIVE时才被视为成功。...为了给索引存储提供HA,我们建议将Atlas配置为使用Solr或Elasticsearch作为JanusGraph的索引存储支撑。...确保Solr在至少2个物理主机上启用以实现冗余,并且每个主机都运行Solr节点。 建议将冗余数量设置为至少2个副本。
javaee 里面的 service 层 integration(对外提供服务):相当于 javaee 里面的 controller 层 二、Atlas安装 1、下载源码包,并上传到linux,解压...3、Atlas 安装配置 若是之前安装了zookeeper,kafka,hbase直接启动就行 4、安装solr [root@h3 solr]# bin/solr start -c -z h1:2181...replicationFactor 1 -force 5、配置及启动 atlas 上传 atlas 编译好之后的安装包 sftp> put d:/apache-atlas-bin-2.0.0.tar.gz /root/ 修改配置文件...=false (如果要使用内嵌的 kafka,则改为 true) atlas.kafka.zookeeper.connect=doitedu01:2181,doitedu02:2181,doitedu03...atlas.kafka.bootstrap.servers=doitedu01:9092,doitedu02:9092,doitedu03:9092 ######### Server Properties ######### atlas.rest.address
Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。 本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎。...将 solr-6.2.0\server\solr\my_news\conf 目录下默认的配置文件 managed-schema 重命名为 schema.xml 并加入新的 fieldType: ?...Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。...这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。 Elasticsearch的上手是非常简单的。...Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。