
Java-Anwendung, die für die CVE-2021-44228-Schwachstelle (auch bekannt als log4shell) anfällig ist
Diese Demo-Anwendung ist anfällig für CVE-2021-44228, auch bekannt als Log4Shell. Sie kann beispielsweise verwendet werden, um ein Erkennungs- oder Behebungsskript zu validieren.
Erstellen Sie die Anwendung:
mvn clean package
Oder laden Sie alternativ das vorgefertigte JAR herunter.
Führen Sie die Anwendung aus (im Unterverzeichnis target, wenn Sie sie lokal erstellt haben):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
Die Anwendung ist standardmäßig nicht anfällig. Sie müssen die Systemeigenschaft
log4shell.allsetzen, um Schwachstellen zu aktivieren (oder Sie können schwachstellenspezifische Optionen verwenden, siehe unten).
log4shell.userAgent, um den HTTP-Header User-Agent zu protokollieren.log4shell.authorization, um den HTTP-Header Authorization zu protokollieren.log4shell.basicAuth, um das aus der Basisauthentifizierung dekodierte Benutzer-/Passwort-Paar zu protokollieren.log4shell.urlPath, um den URL-Pfad zu protokollieren.log4shell.urlQuery, um die URL-Abfragezeichenfolge zu protokollieren.log4shell.all, um alle oben genannten Punkte zu protokollieren.Ein leerer Eigenschaftswert ist ausreichend.
Um die Basisauthentifizierung für die Anwendung zu aktivieren, aktivieren Sie das Konfigurationsprofil basicAuth:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demodemoWenn die Basisauthentifizierung aktiviert ist, kann die Anwendung nicht anfällig für die Benutzer-/Passwort-Injektion sein.
Senden Sie eine GET- oder POST-Anfrage an einen beliebigen Pfad mit einer schädlichen Nutzlast, die gemäß den obigen Optionen platziert ist:
Beispiel mit User-agent-Header:
curl http://localhost:8080 -A "<malicious-user-agent>"
Die App gibt einen 302 zu /test aus, das die Schwachstelle enthält.