|
|
Dipaparkan pada 2021-12-11 21:06:29
|
|
|
|

Dalam dua hari terakhir, telah digesek oleh "kerentanan eksekusi kode jarak jauh Apache Log4j2" di lingkaran pertemanan, terutama karena kerentanan injeksi Java JNDI dalam komponen: ketika program menulis data yang dimasukkan oleh pengguna ke dalam log, penyerang membuat permintaan khusus untuk memicu kerentanan eksekusi kode jarak jauh di Apache Log4j2, sehingga mengeksploitasi kerentanan ini untuk mengeksekusi kode arbitrer di server target.
Ruang lingkup pengaruh
Apache Log4j 2.x <= 2.14.1
JNDI (Java Naming and Directory Interface) adalah antarmuka penamaan dan direktori Java yang disediakan oleh Java. Dengan memanggil API JNDI, aplikasi dapat menemukan sumber daya dan objek program lainnya. JNDI merupakan bagian penting dari Java EE, perlu dicatat bahwa tidak hanya mencakup DataSource (sumber data JDBC), JNDI dapat mengakses direktori dan layanan yang ada seperti: JDBC, LDAP, RMI, DNS, NIS, CORBA, dikutip dari Ensiklopedia Baidu. Ada banyak artikel di Internet tentang cara memperbaiki kerentanan dan tangkapan layar kerentanan, tetapi sedikit tentang cara menguji proyek untuk kerentanan tersebut.Java menggunakan Log4j2 untuk menguji kode terutamaSebagai berikut:
Secara sederhana, Log4j2 akan mengakses alamat berikut melalui protokol RMI atau LDAP, dan sesuai dengan isi protokol, ia dapat mengeksekusi kode yang dibuat dengan jahat.
Keberadaan kerentanan hampir selalu dibuktikan di Internet dengan membuka kalkulator Windows, dan kodenya adalah sebagai berikut:
Karena Log4J2 menggunakan protokol RMI atau LDAP untuk mengakses server penyerang, dan protokol RMI dan LDAP berbasis TCP, kita dapat melakukannya secara langsungMenggunakan .NET untuk mendengarkan pada port TCP, jika panggilan ke log4j2 untuk mencetak log mengakses port mendengarkan .NET, itu membuktikan bahwa mungkin ada kerentanan, dan jika tidak, itu terbukti aman。
.NET menghasilkan program pengujian yang sangat kecil6kb, kodenya adalah sebagai berikut:
Coba gunakan komponen log4j2.14.0Versinya dicetak, dan renderingnya adalah sebagai berikut:
Coba tingkatkan komponen log4j ke2.15.0version, dijalankan lagi, efeknya adalah sebagai berikut:
Setelah memutakhirkan versi, ditemukan bahwa setelah memanggil log cetak,Program Java tidak lagi mengakses port eksternal。
Teman-teman yang tertarik, Anda dapat merujuk ke tautan berikut untuk mereproduksi kerentanan dan memanggil kalkulator.
Login hyperlink terlihat.
Login hyperlink terlihat.
Terakhir, lampirkan prosedur pengujian:
测试程序.rar
(2.66 KB, Jumlah unduhan: 1)
|
Mantan:[Pertempuran aktual]. NET/C# Buat database SQLite dan cukup tambahkan, hapus, modifikasiDepan:Tutorial nacos penyebaran sistem CentOS
|