
Ein einfaches Programm zur Demonstration, wie die Log4j-Schwachstelle ausgenutzt werden kann ( CVE-2021-44228 )
Ein einfaches Programm zur Demonstration, wie die Log4j-Schwachstelle ausgenutzt werden kann ( CVE-2021-44228 )
Um das Programm zu starten, führen Sie einfach start.sh ( auf UNIX-Systemen ) oder start.bat unter Windows aus.
Die Benutzereingabe wird gelesen und mithilfe des Log4j-Frameworks in der Konsole protokolliert.
Standardmäßig liefern die vom Log4j-Framework generierten Protokollmeldungen keine Server-nicht-erreichbar- bzw. Host-nicht-gefunden-Fehler für die JNDI-Ersetzungen. ( Und ich vermute, das ist auch ein Hauptgrund, warum diese Schwachstelle heimlich ausgenutzt werden kann )
Versuchen Sie auch, Subdomains zu verwenden, wie ${jndi:ldap://test29.google.com/blah} ; manchmal wartet der JNDI-Aufruf auf die Antwort des entfernten Servers, und deshalb sieht es so aus, als ob das Programm hängt, während es im Hintergrund tatsächlich einen Verbindungsversuch unternommen hat. Wenn Sie Subdomains verwenden, die nicht existieren, wird der JNDI-Aufruf nach einem Verbindungsversuch schnell beendet und das Programm läuft weiter.
Ich empfehle Ihnen, das Programm in einer Shell auszuführen und parallel dazu in einer anderen Shell den Befehl " tcpdump -i any | grep google " auszuführen und dann Eingaben an das Programm zu übergeben, um zu sehen, ob das Programm einen Verbindungsversuch unternommen hat.



testing ( Normaler String )
--
--
--