Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 10163|Odpowiedź: 4

[Źródło] Program .NET testuje projekt Java log4j2 pod kątem podatności na zdalne wykonywanie kodu

[Skopiuj link]
Opublikowano 2021-12-11 21:06:29 | | | |
W ciągu ostatnich dwóch dni został on przeciągnięty przez "podatność na zdalne wykonywanie kodu Apache Log4j2" wśród znajomych, głównie z powodu podatności na wstrzykiwanie JNDI w Java w tym komponencie: gdy program zapisuje dane wprowadzone przez użytkownika do loga, atakujący tworzy specjalne żądanie, aby wywołać podatność na zdalne wykonywanie kodu w Apache Log4j2, wykorzystując tę lukę do uruchomienia dowolnego kodu na docelowym serwerze.

Zakres wpływu

Apache Log4j 2.x <= 2.14.1

JNDI (Java Naming and Directory Interface) to interfejs nazewnictwa i katalogów w Javie oferowany przez Javę. Wywołując API JNDI, aplikacje mogą lokalizować zasoby i inne obiekty programowe. JNDI jest ważną częścią Java EE, warto zauważyć, że nie obejmuje tylko DataSource (źródło danych JDBC), ale także umożliwia dostęp do istniejących katalogów i usług, takich jak: JDBC, LDAP, RMI, DNS, NIS, CORBA, fragment z Baidu Encyclopedia.

W internecie jest wiele artykułów o tym, jak naprawić luki i zrzuty ekranu z nich, ale niewiele o tym, jak przetestować projekt pod kątem tych luk.Java głównie testuje kod w Log4j2Następujący sposób:


Mówiąc prosto, Log4j2 uzyska dostęp do następującego adresu przez protokół RMI lub LDAP i w zależności od treści protokołu może uruchamiać złośliwie skonstruowany kod.

Istnienie tej luki jest niemal zawsze potwierdzone w Internecie, otwierając kalkulator Windows, a kod wygląda następująco:

Ponieważ Log4J2 korzysta z protokołów RMI lub LDAP do dostępu do serwera atakującego, a zarówno protokoły RMI, jak i LDAP są oparte na TCP, możemy to zrobić bezpośrednioUżywając .NET do nasłuchiwania na porcie TCP, jeśli wywołanie log4j2 do drukowania logów dostaje się do portu nasłuchu .NET, dowodzi to na istnienie luki, a jeśli nie, to jest bezpieczne

.NET generuje bardzo małe programy testowe6kb, kod jest następujący:

Spróbuj użyć komponentu log4j2.14.0Wersja jest drukowana, a rendering wygląda następująco:



Spróbuj zaktualizować komponent log4j do2.15.0Wykonana ponownie, efekt wygląda następująco:



Po aktualizacji wersji okazuje się, że po wywołaniu dziennika wydruku,Program Java nie korzysta już z zewnętrznego portu

Zainteresowani przyjaciele, możecie odwołać się do poniższego linku, aby odtworzyć lukę i wywołać kalkulator.

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.

Na koniec załącz procedurę testową:

测试程序.rar (2.66 KB, Liczba pobranych plików: 1)





Poprzedni:[Rzeczywista walka]. NET/C# Stwórz bazę danych SQLite i po prostu dodaj, usuń, modyfikuj
Następny:Tutorial wdrażania systemu CentOS nacos
 Ziemianin| Opublikowano 2021-12-13 13:37:35 |
Po Java 8 121 wymagane są następujące konfiguracje, aby odtworzyć podatność:

 Ziemianin| Opublikowano 2021-12-19 12:10:22 |
Opublikowano 2021-12-20 23:09:51 |
Przyjrzyjmy się działaniu szefa
Opublikowano 2021-12-26 16:54:47 |
Przyjdź i ucz się ponownie。。。。。。。
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com