环境搭建
- 源码版本: lucene-solr-releases-lucene-solr-6.0.0
- IDE: IDEA
- 系统: OSX
Ant工具
Mac安装Ant
1
brew install ant
Ant编译Solr
1
2
3
4
5
6
7ant idea # 将solr源码编译成intellij idea的项目
ant ivy-bootstrap
cd solr
ant server # 创建solr server
ant使用的配置文件一般是build.xml
调试
进入lucene-solr\solr\bin
文件夹中,运行solr start -p 8988 -f -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8988"
IDEA中配置-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8988
漏洞复现
只复现两个XXE漏洞
CVE-2017-12629
1 | solr create -c test # 创建核心test |
Solr DIH dataConfig参数XXE漏洞
1 | solr create -c test # 创建核心test |
遇到的问题
没有DataImport功能,界面中报错
Sorry, no dataimport-handler defined!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19参考
http://blog.sina.com.cn/s/blog_4ada05f50102wmkm.html
https://stackoverflow.com/questions/13913915/org-apache-solr-common-solrexception-error-loading-class-org-apache-solr-handl
一句话就是需要在核心test的配置文件添加配置,文件配置路径:solr/server/solr/test/conf/solrconfig.xml
添加如下:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
添加后会遇到两个新的问题
1. db-data-config.xml找不到
解决办法:find lucene-solr-releases-lucene-solr-6.0.0 -name "db-data-config.xml"找到配置文件后,copy过去
2. org.apache.solr.handler.dataimport.DataImportHandler这个类找不到
解决办法:参考链接,solrconfig.xml配置文件中添加lib包 <lib dir="${solr.install.dir:../../../..}/dist/" regex=".*dataimporthandler-.*\.jar" />IDEA不支持类的定义的跳转,can not resolve symbol
1
2
31. File->Invalidate Cache
设置jdk版本为低版本不能在DocumentBuilderFactory下断点
1
IDEA可以在任意异常处下断点,也很容易找到漏洞触发位置
从关键字往回倒时怎么挖?(漏洞作者怎么挖的)
1
调CoreParser类的parse函数的地方太多了
Solr到底是个什么鬼?
1
参考 https://www.cnblogs.com/leeSmall/category/1210814.html