
Containerisierte Laborumgebung zur Simulation und Ausnutzung einer DOM-basierten XSS-Schwachstelle (CVE-2021-24891) im Elementor WordPress-Plugin für praxisnahe Sicherheitsschulungen.
Eine praxisorientierte, containerisierte Laborumgebung zur Simulation und Ausnutzung einer DOM-basierten Cross-Site-Scripting (XSS)-Schwachstelle im Elementor Website Builder WordPress-Plugin, identifiziert als CVE-2021-24891.
Dieses Labor demonstriert eine DOM-basierte Cross-Site-Scripting (XSS)-Schwachstelle im Elementor-Plugin für WordPress (Versionen vor 3.4.8). Die Schwachstelle tritt auf, weil der clientseitige Code des Elementor-Editors Daten direkt aus dem URL-Hash (#...) ausliest und ohne ordnungsgemäße Bereinigung in das Document Object Model (DOM) der Seite einfügt.
Ein Angreifer kann einen bösartigen Link erstellen, der ein JavaScript-Payload im Hash-Fragment enthält. Wenn ein eingeloggter Administrator (z. B. ein Site-Editor) auf diesen Link klickt, wird das bösartige Skript im Kontext seiner Browsersitzung ausgeführt, was dem Angreifer potenziell ermöglicht, Aktionen in seinem Namen durchzuführen, Sitzungscookies zu stehlen oder die Website zu verunstalten.
# beginnt, clientseitig verarbeitet wird und nicht an den Server gesendet wird. Dies ist der Einstiegspunkt für das bösartige Payload.Dieses Repository enthält eine verwundbare WordPress-Instanz mit dem betroffenen Elementor-Plugin, bereit zur Ausnutzung. Das Labor kann sofort in der Cloud oder auf Ihrem lokalen Rechner ausgeführt werden.
Dies ist der einfachste Einstieg. Es bietet eine vorkonfigurierte, cloudbasierte Umgebung in Ihrem Browser.
Codespace starten: Klicken Sie auf das „Open in GitHub Codespaces“-Abzeichen oben in dieser README.
Auf das Setup warten: GitHub bereitet Ihre Umgebung vor. Sobald der Vorgang abgeschlossen ist, erscheint ein Terminal.
Die verwundbaren Dienste starten: Führen Sie im VS Code-Terminal den folgenden Befehl aus:
docker compose up
Dadurch werden die verwundbare WordPress-Seite und ihre Datenbank gestartet. Es erscheint ein Tab „Ports“. Klicken Sie auf den Link für Port 8080, um WordPress in einem neuen Browser-Tab zu öffnen.
Führen Sie das gesamte Labor auf Ihrem eigenen Rechner mit Docker aus.
Voraussetzungen:
Anleitung:
Repository klonen:
git clone https://github.com/hackmelocal/CVE-2021-24891-Simulation.git
cd CVE-2021-24891-Simulation
Die verwundbaren Dienste starten: Führen Sie in Ihrem Terminal den Befehl aus:
docker compose up
Auf WordPress zugreifen: Öffnen Sie Ihren Webbrowser und navigieren Sie zu http://localhost:8080.
Der JavaScript-Code innerhalb des Elementor-Editors liest den Wert aus window.location.hash und schreibt ihn unsicher in das DOM der Seite. Da die Eingabe (<script>alert(...)</script>) nicht bereinigt wird, interpretiert der Browser sie als gültiges Script-Tag und führt sie aus. Dies ist ein klassisches Beispiel für DOM-basiertes XSS.
Dieses Labor dient ausschließlich zu Bildungszwecken. Der Ersteller ist nicht verantwortlich für Missbrauch der bereitgestellten Informationen oder Werkzeuge. Stellen Sie sicher, dass Sie vor der Durchführung von Sicherheitstests die entsprechende Genehmigung haben.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.