0x02 漏洞分析 从通告中来看,漏洞应该和DIH功能中的某个功能有关系,翻一翻DataImportHandler的手册,找到了疑似漏洞触发点,下面的代码功能是 ScriptTransformer 。
编号 CVE-2019-0193 漏洞简介 DataImportHandler是一个可选但使用广泛的模块,默认不启用,用于从数据库和其他源中提取数据,它有一个特性即整个DIH配置可以来自一个请求的“dataConfig
使用dataimportHandler插件批量导入数据,在solr服务中集成dataimportHandler插件的步骤: 1、找到solrHome/collection1目录,创建一个lib目录,将插件所依赖的 jar包和数据库驱动包拷贝到lib目录下(dataimportHandler插件依赖的jar包可以在下载好的solr压缩包中找到); 插件依赖的jar包在dist目录下: ? solrconfig.xml文件,添加如下配置内容: <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>
根据关键词解析(queryParser)出查询条件query(Termquery),利用搜索工具(indexSearcher)去索引库获取文档id,然后再根据文档id去文档信息库获取文档信息 3.2 Solr DataImportHandler Solr DataImportHandler可以批量把数据导入到索引库中,根据Solr文档[2]中的描述,DataImportHandler有如下功能: •读取关系数据库中数据或文本数据•根据配置从xml 对增加或者被修改的字段进行导入)•调度full-import与delta-import•可以插入任何类型的数据源(ftp,scp等)和其他用户可选格式(JSON,csv等) 通过搜索到的资料与官方文档中对DataImportHandler PoC进化历程 4.1 PoC第一阶段--数据库驱动+外连+无回显 根据官方漏洞预警描述[4],是DataImportHandler在开启Debug模式时,能接收dataConfig这个参数,这个参数的功能与 #DataImportHandler-Usingdelta-importcommand [3] Solr Guide 7.5文档: https://lucene.apache.org/solr/guide
根据关键词解析(queryParser)出查询条件query(Termquery),利用搜索工具(indexSearcher)去索引库获取文档id,然后再根据文档id去文档信息库获取文档信息 Solr DataImportHandler Solr DataImportHandler可以批量把数据导入到索引库中,根据Solr文档中的描述,DataImportHandler有如下功能: 读取关系数据库中数据或文本数据 根据配置从xml(http 对增加或者被修改的字段进行导入) 调度full-import与delta-import 可以插入任何类型的数据源(ftp,scp等)和其他用户可选格式(JSON,csv等) 通过搜索到的资料与官方文档中对DataImportHandler true,则在创建Solr文档之前,记录中遇到的此 字段将被复制到其他记录 PoC进化历程 PoC第一阶段--数据库驱动+外连+无回显 根据官方漏洞预警描述,是DataImportHandler #DataImportHandler-URLDataSource https://lucene.apache.org/solr/guide/7_5/ https://stackoverflow.com/
Apache Solr的DataImportHandler中存在一个不正确的输入验证漏洞,可利用Windows UNC路径从Solr主机调用网络上的另一台主机的SMB服务,或导致SMB攻击,从而造成: -7.3.1.jar wget https://mirror.shileizcc.com/Solr/solr-dataimporthandler-extras-7.3.1.jar 4)在solr-8.11.0 \server\solr\core1\conf\solrconfig.xml中添加DataImportHandler路由 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>"> <lst name="defaults"> < 下载链接: https://solr.apache.org/downloads.html 缓解措施: 确保只有受信任的客户端才能向Solr的DataImporthandler发出请求。
漏洞概述: 此漏洞存在于可选模块DataImportHandler中,DataImportHandler是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig test_0nth3way -d example/example-DIH/solr/db 2、复现 访问 IP:8983/solr/admin/cores Payload需要这个name字段 检测是否有DataImportHandler cat=QUERY&wt=json 有org.apache.solr.handler.dataimport.DataImportHandler就说明有DataImportHandler模块 Payload
1、拷贝 将/opt/solr/solr-7.3.1下的dist和contrib目录拷贝到/opt/solr/solrhome目录下. 2、相关jar包 拷贝solr-dataimporthandler -7.3.1.jar和solr-dataimporthandler-extras-7.3.1.jar包到/opt/tomcat/apache-tomcat-8.5.31/webapps/solr/WEB-INF /lib/;如果lib目录不存在,请创建. cp /opt/solr/solrhome/dist/solr-dataimporthandler-7.3.1.jar /opt/solr/solrhome/ dist/solr-dataimporthandler-extras-7.3.1.jar /opt/tomcat/apache-tomcat-8.5.31/webapps/solr/WEB-INF/lib solrconfig.xml,添加如下内容:. # 在文件底部 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>
solrconfig.xml 添加数据源配置,如下所示: <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em> -7.4.0.jar下载地址: https://repo1.maven.org/maven2/org/apache/solr/solr-<em>dataimporthandler</em>-extras/7.4.0/solr-<em>dataimporthandler</em>-extras -7.4.0.jar solr-<em>dataimporthandler</em>-extras-7.4.0.jar下载地址: https://repo1.maven.org/maven2/org/apache/solr /solr-<em>dataimporthandler</em>-extras/7.4.0/solr-<em>dataimporthandler</em>-extras-7.4.0.jar tika-app-1.19.1.jar(版本要求 将solr-<em>dataimporthandler</em>-7.4.0.jar、solr-<em>dataimporthandler</em>-extras-7.4.0.jar和tika-app-1.19.1.jar三个jar包拷贝到集群所有节点的
/contrib/dataimporthandler/" regex=".*\.jar"> <lib dir="${solr.install.dir:../../../..} /dist/" regex="solr-<em>dataimporthandler</em>-.*\.jar"> 4. 同样上面那个文件,增加节点; <requestHandler name="/dataimport" class="org.apche.solr.handler.dataimport.<em>DataImportHandler</em> 下载ojdbc6.jar到#solr_home/contrib/<em>dataimporthandler</em>/中,我是在http://vdisk.weibo.com/s/z8ZZMoqsgpNFH中下载的; 6. archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-7.0.pdf https://wiki.apache.org/solr/<em>DataImportHandler</em>
导入步骤如下: 1.将下载下来的solr4.6的dist文件夹下的solr-dataimporthandler-4.6.0.jar和solr-dataimporthandler-extras-4.6.0 solrconfig.xml,添加下面这段代码: <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>
-- 添加dataimporthandler标签 --> <lib dir="${solr.install.dir:../../../..} /contrib/<em>dataimporthandler</em>/lib" regex=".*\.jar" /> <! 3、把solr-5.0.0\dist下的solr-dataimporthandler-5.0.0.jar拷贝进solr_home\contrib\dataimporthandler\lib下 ? dataimport的requestHandler --> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>
它旨在驱动功能强大的文档检索应用程序 - 无论您需要根据用户的查询将数据服务到何处,Solr 都可以来进行服务 Apache Solr 的 DataImportHandler是一个可选但常用的模块,可从数据库 dataConfig 中获取,由于 dataConfig 可以包含脚本而且没有对脚本的内容进行控制从而导致被恶意利用 0x01 漏洞利用 影响版本:Apache Solr 1.3 - 8.2, 利用条件:开启 DataImportHandler (默认情况为不开启) 漏洞介绍: Solr有一个可选的DataImportHandler,用于从数据库或URL导入数据,它可以在 dataConfig 参数的脚本标签中包含任意的 JavaScript #DataImportHandler-Overview 由于我们的 command 是 full-import 因此来到了 else 语句结构 ,首先会来到 maybeReloadConfiguration #DataImportHandler-Overview 跟进 DataImporter#doFullImport 方法 在该方法中首先会创建一个 DocBuilder 对象,DocBuilder 的主要功能是从给定配置中创建
dataimporthandler插件导入pdf 从PDF文件中提取文本进行索引 首先依然是在solrconfig.xml配置文件中配置dataimport请求处理器,并指定data-config.xml 配置文件加载路径: <requestHandler name="/dataimport" class="solr.<em>DataImportHandler</em>"> <lst name="defaults /contrib/<em>dataimporthandler</em>/lib/" regex=".*\.jar" /> 如果该路径没有jar,到dist复制jar包创建目录。
版本: 1.0 1 漏洞概述 近日,Apache官方发布Apache Solr远程代码执行漏洞(CVE-2019-0193)安全通告,此漏洞存在于可选模块DataImportHandler中,DataImportHandler 下载链接: http://lucene.apache.org/solr/downloads.html 4.2 临时防护建议 1、用户也可通过配置solrconfig.xml文件,将所有DataImportHandler
webapps/solr/WEB-INF/lib/下 将/solr-7.7.1/server/lib/下metrics开头的jar包也拷贝到刚才的目录下 将/solr-7.7.1/dist/下 solr-dataimporthandler-extras -7.7.1.jar、solr-dataimporthandler-7.7.1.jar也拷贝到刚才的目录下 > cp -rf /usr/local/solr-7.7.1/server/solr-webapp server/lib/metrics-* /data/wwwroot/default/solr/WEB-INF/lib > cp -rf /usr/local/solr-7.7.1/dist/solr-dataimporthandler-extras -7.7.1.jar /data/wwwroot/default/solr/WEB-INF/lib > cp -rf /usr/local/solr-7.7.1/dist/solr-dataimporthandler
数据同步需要注意的事项 因为solr数据是从数据库中导入然后创建索引,所以需要相关jar包的支持,即对应solr版本的solr-dataimporthandler-xxx.jar、solr-dataimporthandler-extras-xxx.jar
-- dataimport --> <lib dir="${solr.install.dir:}/libexec/contrib/<em>dataimporthandler</em>/lib" regex=".*\.jar " /> <lib dir="${solr.install.dir:}/libexec/dist/" regex="solr-<em>dataimporthandler</em>-.*\.jar" /> <! <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.<em>DataImportHandler</em>"> <lst
tomcat,报异常: Error creating core [firstCore]: RequestHandler init failure ClassNotFoundException: solr.DataImportHandler 我们把solr-5.0.0\dist下的solr-dataimporthandler-5.0.0.jar、solr-dataimporthandler-extras-5.0.0.jar拷贝到apache-tomcat
'四川'); INSERT INTO `solr_test_info` VALUES ('4', 'tom', '外国'); 二、复制jar包 复制三个jar包到Solr指定位置 # 移动solr-dataimporthandler -5.5.5.jar、solr-dataimporthandler-extras-5.5.5.jar、mysql-connector-java.jar到指定目录 cd /usr/lib/ambari-infra-solr /dist cp -r solr-dataimporthandler-5.5.5.jar solr-dataimporthandler-extras-5.5.5.jar /usr/lib/ambari-infra-solr 核实 solrconfig,xml,确保文件内有下述内容 <requestHandler name="/dataimport" class="solr.<em>DataImportHandler</em>"> <