19年Apache Solr報(bào)出了2個(gè)嚴(yán)重癞季、高危的漏洞歼跟,因此學(xué)習(xí)驗(yàn)證下cve-2019-0192和cve-2019-0193刑棵,鑒于之前未接觸過Solr搜索服務(wù)器,需要先學(xué)習(xí)搭建Solr服務(wù)器涵紊,將搭建學(xué)習(xí)內(nèi)容整理如下傍妒。
1. Apache Solr文件搜索服務(wù)器
Solr是一個(gè)獨(dú)立的企業(yè)級(jí)搜索應(yīng)用服務(wù)器,它對(duì)外提供類似Web-service的api接口摸柄,用戶通過http請(qǐng)求向搜索引擎服務(wù)器提交一定格式的XML文件颤练,生成索引;也可以通過http get操作提出查找請(qǐng)求驱负,并得到XML格式的返回結(jié)果嗦玖。
Solr是一個(gè)基于Lucene的java搜索服務(wù)器,支持多種格式(XML跃脊、JSON等格式)宇挫,并且附帶一個(gè)管理界面。
2. 環(huán)境搭建
JDK: jdk 1.8.0_171
Solr: solr 6.6.0 (5版本可以基于jdk1.7)
在solr 5版本之后匾乓,安裝包默認(rèn)繼承了jetty服務(wù)器捞稿,可以直接通過運(yùn)行bin目錄下的腳本運(yùn)行啟動(dòng)solr又谋,無需在Tomcat中進(jìn)行配置拼缝;
1)目錄結(jié)構(gòu)
bin Solr的腳本目錄,啟動(dòng)彰亥,關(guān)閉咧七,操作命令
contrib 存放關(guān)于solr的擴(kuò)展
dist Solr的核心jar包和擴(kuò)展jar包
docs 文檔中心
example Solr的webapp示例
licenses 協(xié)議
server 在本地運(yùn)行solr服務(wù)運(yùn)行的必要文件存放在這里,例如core
2)直接通過腳本啟動(dòng)
進(jìn)入solr-6.6.0/bin目錄下任斋,運(yùn)行:
bogon:bin snow$ ./solr start
Waiting up to 180 seconds to see Solr running on port 8983 [/]
Started Solr server on port 8983 (pid=3177). Happy searching!
bogon:bin snow$
./solr stop
./solr create -c new_core
./solr delete -c new_core
3)訪問頁面
http://127.0.0.1:8983/solr/index.html#/
3. 創(chuàng)建示例
網(wǎng)上教程比較多的是继阻,直接通過admin 管理界面的Core Admin進(jìn)行創(chuàng)建,點(diǎn)擊add_core废酷,創(chuàng)建new_core瘟檩。但是在實(shí)際操作過程中,會(huì)報(bào)錯(cuò)澈蟆,找不到配置文件:
Error CREATEing SolrCore 'my_core': Unable to create core [my_core] Caused by: Can't find resource 'solrconfig.xml' in classpath
網(wǎng)上簡(jiǎn)單查了下可能是因?yàn)闆]有配置環(huán)境變量或哪有問題墨辛;
最后通過手工創(chuàng)建new_core工程,首先在solr-6.6.0/server/solr目錄下創(chuàng)建new_core目錄趴俘,并將solr-6.6.0/example/example-DIH/solr/solr/conf目錄復(fù)制進(jìn)新建的new_core目錄睹簇;然后再點(diǎn)擊創(chuàng)建core按鈕奏赘,即可創(chuàng)建成功。
在admin管理界面太惠,選擇創(chuàng)建的new_core工程磨淌。
4. 基于Tomcat部署Solr
基于Eclipse Tomcat部署,有利于反編譯跟進(jìn)代碼異常凿渊,進(jìn)行代碼分析梁只。
Eclipse中新建 web工程
將server\solr-webapp文件夾的內(nèi)容,復(fù)制至工程的webapps目錄中
-
復(fù)制需要的核心jar包
將solr-6.6.0\server\lib\ext的jar包復(fù)制到apache-tomcat-8.0.32\webapps\solr\WEB-INF\lib目錄下
將solr-6.6.0\dist下的solr-dataimporthandler-6.6.0.jar和solr-dataimporthandler-extras-6.6.0.jar復(fù)制到apache-tomcat-8.0.32\webapps\solr\WEB-INF\lib目錄下
將solr-6.6.0\server\lib下的以metrics開頭的5個(gè)jar包復(fù)制到apache-tomcat-8.0.32\webapps\solr\WEB-INF\lib目錄下
創(chuàng)建solrhome文件夾嗽元,將server/solr下的文件都復(fù)制到solrhome文件夾內(nèi)
-
在web.xml中配置路徑敛纲,40行
修改<env-entry-value>值為solrhome文件夾路徑
-
復(fù)制其它配置文件
web工程的WEB-INF目錄下創(chuàng)建classes文件夾,將solr-6.6.0\server\resources下的log4j.properties復(fù)制過去
此處需要修改log4j指定的log路徑剂癌,配置為當(dāng)前路徑./logs即可 -
啟動(dòng)web應(yīng)用
http://localhost:8080/solr/index.html