Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 10163|Yanıt: 4

[Kaynak] .NET programı, Java projesi log4j2'yi uzaktan kod çalıştırma açığı açısından test eder

[Bağlantıyı kopyala]
2021-12-11 tarihinde yayınlandı 21:06:29 | | | |
Son iki gündür, "Apache Log4j2 uzaktan kod çalıştırma zafi" tarafından arkadaşlar arasında silindi; bunun başlıca nedeni bileşendeki Java JNDI enjeksiyon açığıydı: program, kullanıcının girdiği verileri loga yazdığında, saldırgan Apache Log4j2'de uzaktan kod çalıştırma açığını tetiklemek için özel bir istek oluşturur ve böylece bu açığı hedef sunucuda rastgele kod çalıştırmak için kullanır.

Etki kapsamı

Apache Log4j 2.x <= 2.14.1

JNDI (Java Adlandırma ve Dizin Arayüzü), Java tarafından sağlanan bir Java adlandırma ve dizin arayüzüdür. JNDI'nin API'sini çağırarak, uygulamalar kaynakları ve diğer program nesnelerini bulabilir. JNDI, Java EE'nin önemli bir parçasıdır; sadece DataSource'u (JDBC veri kaynağı) içermediği, JNDI'nin mevcut dizinlere ve hizmetlere erişebileceği belirtilmelidir; örneğin JDBC, LDAP, RMI, DNS, NIS, CORBA, bunlar Baidu Ansiklopedisi'nden alınmıştır.

İnternette zafiyetlerin nasıl düzeltileceğine dair birçok makale ve güvenlik açığı ekran görüntüleri var, ancak projenin bu açığı nasıl test edileceği hakkında çok az şey var.Java, kodu test etmek için Log4j2 kullanıyorŞöyle:


Basitçe söylemek gerekirse, Log4j2 RMI veya LDAP protokolü aracılığıyla aşağıdaki adrese erişir ve protokolün içeriğine göre kötü niyetli bir şekilde oluşturulmuş kodu çalıştırabilir.

Zayıflığın varlığı neredeyse her zaman İnternet'te bir Windows hesap makinesi açılarak kanıtlanır ve kod şöyledir:

Log4J2, saldırganın sunucusuna erişmek için RMI veya LDAP protokolleri kullandığı ve hem RMI hem de LDAP protokollerinin TCP tabanlı olduğu için, bunu doğrudan yapabiliyoruz.NET kullanarak bir TCP portunda dinlemek, log4j2'ye yazdırılan bir çağrı .NET dinleme portuna erişirse, bu bir güvenlik açığı olabileceğini kanıtlar, yoksa güvenli olduğunu kanıtlar.

.NET çok küçük test programları üretir6kb, kod şöyledir:

log4j bileşenini kullanmayı deneyin2.14.0Versiyon basılmıştır ve render şu şekildedir:



log4j bileşenini şu şekilde yükseltmeyi deneyin.2.15.0Versiyon tekrar uygulandığında, etkisi şu şekildedir:



Sürüm yükseltildikten sonra, baskı günlüğü çağrıldıktan sonra,Java programı artık harici porta erişmiyor

İlgilenen arkadaşlar, aşağıdaki bağlantıya bakarak bu zayıflığı yeniden üretebilir ve hesaplayıcıyı çağırabilirsiniz.

Bağlantı girişi görünür.
Bağlantı girişi görünür.

Son olarak, test prosedürünü ekleyin:

测试程序.rar (2.66 KB, İndirme sayısı: 1)





Önceki:[Gerçek dövüş]. NET/C# Bir SQLite veritabanı oluşturun ve basitçe ekleyin, silin, değiştirin
Önümüzdeki:CentOS system deployment nacos tutorial
 Ev sahibi| 2021-12-13 tarihinde yayınlandı 13:37:35 |
Java 8 121'den sonra, bu açığı yeniden üretmek için aşağıdaki yapılandırmalar gereklidir:

 Ev sahibi| 2021-12-19 tarihinde yayınlandı 12:10:22 |
2021-12-20 tarihinde yayınlandı 23:09:51 |
Patronun işleyişini inceleyelim
2021-12-26 tarihinde 16:54:47 tarihinde yayınlandı |
Gel ve tekrar öğren。。。。。。。
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com