-
安全产品
-
-
-
Apache Solr Velocity模板远程代码执行复现
发布时间:
2019-11-07
来源:
作者:
访问量:
45
0X01: Apache Solr介绍
Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Solr 使程序员能够轻松地开发具有高级功能的复杂、高性能的搜索应用程序。它是一个独立的企业级搜索应用服务器,它对外提供 API 接口。用户可以通过 HTTP 请求或者使用 Http Get 提出查找请求。
0X02: 安装Apache Solr
在Oracle官方下载solr,下载后解压并且执行solr.cmd start,执行后报错,这里要求java版本大于1.8. 我的java版本是1.7 更新Java版本后解决该问题。
0X03: 漏洞复现
执行完solr.cmd start后,可看到solr在8983端口上运行,访问本机8983端口,127.0.0.1:8983可看到solr的页面。
环境搭建成功后,点击Core admin添加一个管理员。首次添加会提示失败。
这时需要在solr的安装目录的/server/solr 下建立一个与想创建管理员名称相同名称的目录。这里创建一个test。
然后再将下图路径的conf文件复制到test目录中。
此时再添加core,成功。
然后访问test下的config 看是否可以访问。
Apache solr默认集成VelocityReponseWrite插件,该插件初始化c参数中params.resource.loader.enabled的默认值设置为false,但是通过postqi请求直接修改集合设置,将其设为ture。然后可以构造特殊的get请求来实现远程代码执行。
也就是说 我们要先发post包将params.resource.loader.enabled的值设为true。
这里将GET修改为POST ,再将修改params.resource.loader.enabled值的包发送,可看到返回status的值为0等信息。
然后发送出的poc。
执行了系统命令whoami。
修复建议:apache暂时没有对solr更新补丁,建议使用该组件的用户(1) 对sorl进行访问限制、(2) 对sorl后台访问添加密码。
远程,solr,apache,访问,执行,java,天地和兴
下一条:
相关资讯
关注我们