In den letzten zwei Tagen wurde sie im Freundeskreis von der "Apache Log4j2 Remote Code Execution Vulnerability" gefiltert, hauptsächlich wegen der Java JNDI Injection-Schwachstelle in der Komponente: Wenn das Programm die vom Benutzer eingegebenen Daten in das Protokoll schreibt, erstellt der Angreifer eine spezielle Anfrage, um die Remote-Code-Ausführungs-Schwachstelle in Apache Log4j2 auszulösen und nutzt diese Schwachstelle aus, um beliebigen Code auf dem Zielserver auszuführen.
Einflussbereich
Apache Log4j 2.x <= 2.14.1
JNDI (Java Naming and Directory Interface) ist eine Java-Namens- und Verzeichnisschnittstelle, die von Java bereitgestellt wird. Durch das Aufrufen der JNDI-API können Anwendungen Ressourcen und andere Programmobjekte lokalisieren. JNDI ist ein wichtiger Bestandteil von Java EE; es sollte beachtet werden, dass es nicht nur DataSource (JDBC-Datenquelle) umfasst, sondern auch auf bestehende Verzeichnisse und Dienste zugreifen kann, wie z. B. JDBC, LDAP, RMI, DNS, NIS, CORBA, aus der Baidu-Enzyklopädie. Im Internet gibt es viele Artikel darüber, wie man Schwachstellen behebt, und Screenshots von Schwachstellen, aber wenig darüber, wie man das Projekt auf die Schwachstelle testen kann.Java verwendet hauptsächlich Log4j2, um den Code zu testenFolgendermaßen:
Einfach ausgedrückt: Log4j2 greift über das RMI- oder LDAP-Protokoll auf folgende Adresse zu, und je nach Inhalt des Protokolls kann es böswillig konstruierten Code ausführen.
Das Vorhandensein der Schwachstelle wird fast immer im Internet durch das Öffnen eines Windows-Taschenrechners nachgewiesen, und der Code lautet wie folgt:
Da Log4J2 RMI- oder LDAP-Protokolle verwendet, um auf den Server des Angreifers zuzugreifen, und sowohl RMI- als auch LDAP-Protokolle TCP-basiert sind, können wir das direkt machenWenn .NET auf einem TCP-Port abgehört, beweist ein Aufruf zu log4j2, um Logs auszudrucken, auf den .NET-Listening-Port zuzugreifen, dass es eine Schwachstelle geben könnte, und wenn nicht, ist es sicher。
.NET erzeugt sehr kleine Testprogramme6 KB, der Code lautet wie folgt:
Versuche, die log4j-Komponente zu verwenden2.14.0Die Version ist gedruckt, und die Darstellung ist wie folgt:
Versuche, die log4j-Komponente auf ein Upgrade zu machen2.15.0Version, erneut ausgeführt, ist der Effekt wie folgt:
Nach dem Upgrade der Version stellt sich heraus, dass nach dem Aufruf des Druckprotokolls,Das Java-Programm greift nicht mehr auf den externen Port zu.。
Interessierte Freunde, ihr könnt den folgenden Link aufrufen, um die Schwachstelle zu reproduzieren und den Taschenrechner aufrufen.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Fügen Sie schließlich das Testverfahren bei:
测试程序.rar
(2.66 KB, Anzahl der Downloads: 1)
|