准备工作 在利用Solr的DataImportHandler来导入MySQL的数据前,需要MySQL满足一些条件。 1.运行用户从远程登录,当然如果从本地MySQL数据库创建索引的话可以无视。...以管理员账号登录MySQL,在命令行中运行: grant select on database.* to username@'%'; flush privileges; select * from...mysql.user where user='username'; 配置Solr Solr的配置见官方文档即可。...Solr3.6.1 在Tomcat6下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm 基于Tomcat的Solr3.5集群部署 http://.../Linux/2012-05/59755.htm 基于Solr 3.5搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm Solr 3.5开发应用教程
最后把solr-6.0\solr-6.0.0\example\example-DIH\solr\db\conf下的admin-extra.html, admin-extra.menu-bottom.html...其中deltaQuery是增量索引,原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要增量导入的数据的ID号。...下面三个field是系统本身的不能删除,否则会运行错误。 步骤5: 启动tomcat,并在URL中输入http://127.0.0.1:8080/solr/index.html路径。...选择刚刚添加的goods实体进行索引操作:我们这儿可以选择full-import或者delta-import(增量索引),选择增量索引需要把clean的勾给去掉,不然会清除之前的,增量的索引的初衷是对新增或者修改的记录重新索引...索引成功如下如所示: 使用query进行测试,输入sa查出了sa 数据库中的数据如下图所示: 这就成功的配置完了MYSQL数据库了,如果配置过程有啥问题可以参考我这个已经配置成功代码:点击打开链接
Solr主要是做数据搜索的,那么Solr的数据是从哪里来的呢?总不能一条一条的插入吧。Solr也有这方面的考虑,比如配置Dataimport将mysql数据批量导入Solr中。.../usr/lib/ambari-infra-solr/example/example-DIH/solr/db/conf目录下;SolrCloud里面也有默认的一组 configset配置组,位置在 Zookeeper...即schema.xml中定义的域名称。...not null multiValued:solr中的一个重要概念,在数据库中没有与之对应的概念。...delta-import 主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。
Solr数据导入处理器 - DIH 首先我要说明的是,我是数据导入处理器(Data Import Handler)的忠实粉丝。...正如在上面提到的SOLR-2382中所完全描述的那样:“在子实体中使用SqlEntityProcessor可能导致”n + 1选择“问题”,这个术语让我回想起以前在IT中面临的挑战,因此无法它在一段合理的时间...在DIH中合并连接 事实证明,ETL社区意识到了这个问题,并已经有了已经用了几年的解决方案 - 外部合并连接(external merge join)。...然而,目前的DIH设计下这是不可能的,但我们扔有很大的突破性尝试 - SOLR-7188。打起精神!这将是一个伟大的胜利,让我们运行DIH来作为一个真正的ETL工具。...然而,我们热衷的是关于构建Solr XML的特定问题。我遇到的困难是平面关系元组(即二位元组,译者注)的限制(称之为行或记录)。
后来逐渐有新的PoC被构造出来,经过了几个版本的PoC升级,到最后能直接通过直接传递数据流的方式,无需数据库驱动,无需连接数据库且能回显。下面记录下PoC升级的历程以及自己遇到的一些问题。...感谢@Badcode与@fnmsd师傅提供的帮助。 2. 测试环境 分析中涉及到的与Solr相关的环境如下: •Solr-7.7.2•JDK 1.8.0_181 3....Solr DataImportHandler可以批量把数据导入到索引库中,根据Solr文档[2]中的描述,DataImportHandler有如下功能: •读取关系数据库中数据或文本数据•根据配置从xml...)•检测插入/更新字段并执行增量导入(delta-import,对增加或者被修改的字段进行导入)•调度full-import与delta-import•可以插入任何类型的数据源(ftp,scp等)和其他用户可选格式...可以看到在script中能执行java代码,于是构造下PoC(通过logs查看相关报错信息查看PoC构造出现的问题),这个数据库是可以外连的,所以数据库的相关信息可以自己控制,测试过是可以的(只是演示使用的
是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。...Apache Solr >= 8.2.0 3漏洞检测 在Solr管理后台Dashboard仪表盘中,可查看当前Solr的版本信息。...4漏洞防护 4.1 官方升级 从Solr的8.2.0版本开始,使用问题参数dataConfig需要将java系统属性“enable.dih.dataconfigparam”设置为true。...固定配置项中的dataConfig参数,设置为空字符串。...2、确保网络设置只允许可信流量与Solr建立通信,尤其是与DIH请求处理器的通信。
后来逐渐有新的PoC被构造出来,经过了几个版本的PoC升级,到最后能直接通过直接传递数据流的方式,无需数据库驱动,无需连接数据库且能回显。下面记录下PoC升级的历程以及自己遇到的一些问题。...id,然后再根据文档id去文档信息库获取文档信息 Solr DataImportHandler Solr DataImportHandler可以批量把数据导入到索引库中,根据Solr文档中的描述,DataImportHandler...与delta-import 可以插入任何类型的数据源(ftp,scp等)和其他用户可选格式(JSON,csv等) 通过搜索到的资料与官方文档中对DataImportHandler的描述,根据我的理解整理出...PoC构造出现的问题),这个数据库是可以外连的,所以数据库的相关信息可以自己控制,测试过是可以的(只是演示使用的127.0.0.1): 在ScriptTransformer那个例子中,能看到row.put...https://lucene.apache.org/solr/guide/7_5/ https://stackoverflow.com/questions/51838282/correct-using-contentstreamdatasource-in-dih
编号 CVE-2019-0193 漏洞简介 DataImportHandler是一个可选但使用广泛的模块,默认不启用,用于从数据库和其他源中提取数据,它有一个特性即整个DIH配置可以来自一个请求的“dataConfig...DIH管理的调试模式使用它来方便地调试DIH配置的开发。因为DIH配置可以包含script脚本,所以这个参数存在安全风险。...从Solr的8.2.0版本开始,使用这个参数需要设置 Java System property,设置"enable.dih.dataConfigParam" 为 true.。...但是在java的运行环境中,JavaScript也可以执行命令,因为scriptmanager的机制是可以js调用java代码,所以除了上面的poc外,还有一个支持回显的写法如下。...建议启动solr时添加对应的参数,通过java security manager 设置也可以进行安全加固。笔者认为严格来说并不能算是安全漏洞,仅仅是安全设计问题,只是支持的功能特性的范围太宽泛了。
前面的博客说了,我在解决solr索引的问题,但是后面我遇到的问题一次比一次严重,上次还能访问solr和系统,上次博客中看到我的solr上面有报错,那是我new_core出现的问题,我作死的在linux中删除了...开始排查,最后发现现有版本的solr可能有些问题,于是我重装了solr并且重新配置了solr-tomcat,以下为教程:https://www.cnblogs.com/guxiong/p/6284938...网上下一个IK Analyzer 2012FF_hf1.zip引入到tomcat中solr的lib中,再次重启,可以启动,现在我们就去启动项目。...在启动项目后我们访问solr遇到了404的问题,而上传方案却没有问题,检查后发现用的查询是query.setRequestHandler("/selectbyorder");而solr默认是/select...,如果要修改的话找一个solr自定义RequestHandler的教程,我这是修改为/select,然后测试查询没有问题,终于告一段落 因为各种原因,我只能在solr里加入这个查询,我搜索solr
Apache Solr远程代码执行(CVE-2019-0193)漏洞复现 Solr简介: Apache Solr 是一个开源的企业级搜索服务器。...Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。...漏洞概述: 此漏洞存在于可选模块DataImportHandler中,DataImportHandler是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig...参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。...-c test_0nth3way -d example/example-DIH/solr/db 2、复现 访问 IP:8983/solr/admin/cores Payload需要这个name字段
0x01,漏洞背景 Apache Solr 是一个开源的搜索服务器。Solr使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。...此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。...它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。...只有当Solr>=8.2.0但是主动将Java System属性“enable.dih.dataConfigParam”设置为true,才存在漏洞。...文件 docker-composeup -d docker-composeexec solr bash bin/solr create_core -c test -d example/example-DIH
是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。...Apache Solr >= 8.2.0 3漏洞检测 在Solr管理后台Dashboard仪表盘中,可查看当前Solr的版本信息。...4漏洞防护 4.1 官方升级 从Solr的8.2.0版本开始,使用问题参数dataConfig需要将java系统属性“enable.dih.dataconfigparam”设置为true。...2、确保网络设置只允许可信流量与Solr建立通信,尤其是与DIH请求处理器的通信。 4.3 产品防护 针对此漏洞,绿盟科技防护产品已发布规则升级包,可形成针对此漏洞的防护能力。...数据后solr会把最后更新时间记录到配置文件中,这个时间是为了下次进行增量更新的时候用的。
/apache-zookeeper-3.6.3-bin/data# the port at which the clients will connectclientPort=2181 根据上述配置文件中配置的...服务,否则会影响Solr创建collection操作,本人这里使用solr的样例目录example-DIH作为SolrCloud运行的配置基础,基于这个配置版本修改并上传到zookeeper服务,单机运行时的配置文件如下图...本人这里执行的命令如下: zkcli.bat -zkhost localhost:2181 -cmd upconfig -confdir D:\solr-8.9.0\example\example-DIH...localhost:2181 -cmd upconfig -confdir D:\solr-8.9.0\example\example-DIH\solr\solr\conf -confname solrconfig...zookeeper的配置文件,我们上述步骤上传的配置文件名称为solrconfig,在shards中可以指定shard的名称,不过router必须要选择Implicit才可自行定义shard名称,一切都选择好后点击
先来看一下Group与Facet的区别: 相同点:两者都能分组一个或多个字段并求数量,并支持组内分页 不同点: facet可以对分组数量进行过滤,以及排序,和日期范围,时间范围分组,但是如果你想得到具体的数据...,还得需要查询一次或多次 group可以得到分组的组数量,一次请求,可以拿到所有的数据。...facet可用来做电商网站的这个功能: ? group可以用来做这个功能: ?...Group常用属性介绍: group=true开启group group.field需要分组的字段 group.limit限制每个分组里面返回的数量 group.offset配合limit可实现分页...group.ngroups 开启可得到匹配组的数量 Facet常用属性介绍: facet=true开启facet功能 facet.field分组字段 facet.prefix前缀查询
一童鞋发现,数据库中count的数量和索引中的数量不一致。全量索引完成后显示,成功1400,但是查询却是1435。 经面板查看显示,numDocs1435,maxDoc1400 。...参数说明: numDocs:当前系统中的文档数量,它有可能大于xml文件个数,因为一个xml文件可能有多个doc标签。...maxDoc:maxDoc有可能比numDocs的值要大,比如重复post同一份文件后,maxDoc值就增大了。...deletedDocs:重复post的文件会替换掉老的文档,同时deltedDocs的值也会加1,不过这只是逻辑上的删除,并没有真正从索引中移除掉。
Apache Solr简介 Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。...如何进行防护 1.添加Solr访问控制,包括禁止本地直接未授权访问 2.针对RCE问题,由于涉及的是SolrCloud所以建议在所有节点中添加filter,进行相关过滤 CVE-2017-12629...包含了一个查询解析器支持XML格式进行数据查询,出现问题的代码片段在 /solr/src/lucene/queryparser/src/java/org/apache/lucene/queryparser...它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。...d example/example-DIH/solr/db 2.搭建好后访问页面。
2019年10月30日,国外安全研究人员放出了一个关于solr 模板注入的exp,攻击者通过未授权访问solr服务器,发送特定的数据包开启 params.resource.loader.enabled,...当solr开启了DataImportHandler功能,该模块中的DIH配置都可以通过外部请求dataconfig参数进行修改,DIH可包含脚本,因此,会存在远程代码执行漏洞。...Apache Solr 远程命令执行漏洞(CVE-2017-12629) 漏洞简介 Apache Solr 是一个开源的搜索服务器。...Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。...漏洞复现 首先创建一个listener,其中设置exe的值为我们想执行的命令,args的值是命令参数: ?
0x00 漏洞背景 ---- 2019年8月1日,Apache Solr官方发布了CVE-2019-0193漏洞预警,漏洞危害评级为严重 0x01 影响范围 ---- Apache Solr < 8.2.0...0x02 环境搭建 ---- 下载地址: https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.zip 在本地解压,进入...solr-7.7.2目录,执行命令 bin/solr -e dih (前提:java环境) ?...然后访问http://localhost:8983/solr即可访问环境 0x03 漏洞利用 ---- 首先我们可以通过接口 curl http://127.0.0.1:8983/solr/admin/...在Burp中发送以下POC即可执行命令弹出计算器,下面的 需要替换为你获取到的 core 的 name(共两处) POST /solr//
/ik-analyzer-solr 将ik-analyzer-8.5.0.jar放置在webapp/WEB-INF/lib/目录下 将resources目录下的5个配置文件放入solr服务的Jetty或..."/> 结果比较 # 导入数据DIH DIH全称是Data Import Handler 数据导入处理器,顾名思义这是向solr中导入数据的,...我们的solr目的就是为了能让我们的应用程序更快的查询出用户想要的数据,而数据存储在应用中的各种地方入xml、pdf、关系数据库中,那么solr首先就要能够获取这些数据并在这些数据中建立索引来达成快速搜索的目的...,这里就列举我们最常用的从关系型数据库中向solr导入索引数据。...解压后dist目录中的:solr-dataimporthandler-8.11.0粘贴到contrib/dataimporthandler/lib目录下, lib目录需要手动创建。
如果我们能够解决两个主要问题,人名搜索的问题就解决一大半了。 作者姓名重排,无论是在文档还是查询中,有些部分都被省略了:(Doug Turnbull, D. Turnbull, D. G....] [dougl] [dougla] [douglas] 有关此过滤器(以及Solr中的许多其他过滤器)需要注意的是,每个生成的标记最终在索引文档中占据相同的位置。...路还很长 这是一个很好的开始,但搜索是一条改进空间巨大的探索之路。要让这个搜索系统无懈可击,还有很多工作要做。除了我所违反的文化习惯之外,还有很多问题留给读者: 来Solr培训解决这些问题!...所以,在你的Solr之旅中还有一些有趣的谜题!如果你想要解决这些问题,一定要查看我们的Solr培训! 来分享您的意见吧!希望这篇文章能帮助你开始建立一个合理的人名搜索系统。您过去是否遇到过此类问题?...您如何用Solr解决这些问题?请联系我们以获取问题帮助!
领取专属 10元无门槛券
手把手带您无忧上云