Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2018-25031 | Kitploit
Tools/GitHubGitHub/lucasrenaa/cve-2018-25031
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitLernen & BildungAPI-Sicherheit
GitHublucasrenaa/cve-2018-25031

CVE-2018-25031

Repository anzeigen
vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

POC von Cross-Site Scripting im Swagger UI: CVE-2018-25031 mit Selenium in Python

Dieses Repository enthält ein Python-Skript, das eine Proof-of-Concept (POC) einer Cross-Site-Scripting (XSS)-Schwachstelle im Swagger UI mithilfe der Selenium-Bibliothek demonstriert. Das Ziel dieser POC ist es, Websites zu identifizieren, die für diese Schwachstelle anfällig sind, indem das Swagger UI mit einem bösartigen Payload ausgenutzt wird.

Cross-Site-Scripting-Schwachstelle (XSS) im Swagger UI

Das Swagger UI ist ein weit verbreitetes Tool zum Anzeigen und Interagieren mit APIs über eine benutzerfreundliche Oberfläche. In Version 2.9.2 wurde jedoch eine Cross-Site-Scripting (XSS)-Schwachstelle identifiziert, die es einem Angreifer ermöglichen könnte, bösartigen JavaScript-Code in geladene Swagger-UI-Seiten einzuschleusen.

XSS tritt auf, wenn eine Anwendung die vom Benutzer eingegebenen Daten nicht ordnungsgemäß validiert, bevor sie auf der Seite angezeigt werden. In diesem Fall kann ein Angreifer die Schwachstelle ausnutzen, indem er bösartigen JavaScript-Code in Eingabefelder des Swagger UI einfügt, der im Kontext des Browsers anderer Benutzer ausgeführt wird, die dieselbe kompromittierte Seite aufrufen.

Beispiel für XSS im Swagger UI

Hinweis: Das obige Bild zeigt ein Beispiel dafür, wie ein Angreifer einen XSS-Payload in das Swagger UI einschleusen kann, indem er eine Sicherheitslücke in den betroffenen Versionen ausnutzt.

Mitigation und Lösung

Der effektivste Weg, diese Schwachstelle zu entschärfen, besteht darin, sicherzustellen, dass das Swagger UI auf eine nicht betroffene Version aktualisiert wird. Überprüfen Sie die neuesten Versionen des Swagger UI und halten Sie es immer auf dem neuesten Stand.

Für Entwickler, die das Swagger UI verwenden oder anpassen möchten, ist es wichtig, eine ordnungsgemäße Validierung der Eingabedaten durchzuführen, bevor sie in der Oberfläche angezeigt werden. Das Vermeiden der direkten Darstellung von vom Benutzer eingegebenem HTML oder JavaScript wird empfohlen, um XSS-Schwachstellen zu verhindern.

Beispiel für die Ausnutzung

Hier ist ein vereinfachtes Beispiel, wie die Schwachstelle mithilfe des Swagger UI ausgenutzt werden kann:

  1. Der Angreifer greift auf ein anfälliges Swagger UI zu.
  2. Der Angreifer identifiziert ein Eingabefeld, in das er Text einfügen kann.
  3. Der Angreifer injiziert einen XSS-Payload in die URL, zum Beispiel: http://127.0.0.1:8080/swagger-ui.html?configUrl=https://xss.smarpo.com/test.json
  4. Wenn andere Benutzer dieselbe kompromittierte Seite aufrufen, wird der XSS-Payload in ihren Browsern ausgeführt und zeigt einen Alert mit der Meldung "XSS-Schwachstelle".

Warnung

Dieser Abschnitt dient nur zu Bildungs- und Informationszwecken. Fördern Sie keine böswilligen oder illegalen Aktivitäten und beteiligen Sie sich nicht daran. Befolgen Sie bei der Meldung von Schwachstellen stets die Praktiken der verantwortungsvollen Offenlegung.

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen installiert sind, bevor Sie das Skript ausführen:

  • Python: Stellen Sie sicher, dass Python auf Ihrem Rechner installiert ist.
  • Selenium: Installieren Sie die Selenium-Bibliothek mit dem folgenden Befehl:
    root@kitploit:~
    pip install selenium
    
  • ChromeDriver: Stellen Sie sicher, dass ein kompatibler ChromeDriver installiert ist. Sie können den ChromeDriver von der offiziellen Selenium-Website herunterladen oder einen Paketmanager wie den WebDriver Manager verwenden.

So verwenden Sie das Skript

  1. Klonen oder laden Sie dieses Repository auf Ihren Rechner herunter.

  2. Bearbeiten Sie die Datei sites_para_testar.txt und tragen Sie die URLs der Websites, die Sie testen möchten, ein – eine pro Zeile.

  3. Öffnen Sie ein Terminal im Repository-Ordner und führen Sie das Skript mit dem folgenden Befehl aus:

    root@kitploit:~
    python main.py
    
  4. Das Skript durchläuft die in der Datei sites_para_testar.txt aufgeführten Websites, ruft deren Swagger-UI-URLs auf und prüft, ob ein XSS-Alert erkannt wird. Die Ergebnisse werden in drei Dateien gespeichert: valido.txt für potenziell anfällige URLs, talvezvalido.txt für URLs, die möglicherweise anfällig sind, und naovalido.txt für nicht anfällige URLs.

Das Skript verstehen

Das Skript verwendet die Selenium-Bibliothek, um die Interaktion mit dem Chrome-Browser zu automatisieren. Es lädt die im File sites_para_testar.txt konfigurierten Swagger-UI-URLs, fügt dem Parameter configUrl einen bösartigen Payload hinzu und prüft, ob ein XSS-Alert ausgelöst wird.

Das Skript führt die folgenden Schritte aus:

  1. Es importiert die erforderlichen Selenium-Bibliotheken und andere Abhängigkeiten.

  2. Es konfiguriert die ChromeDriver-Optionen, um SSL- und Zertifikatsfehler zu ignorieren.

  3. Es initialisiert den Chrome-Treiber.

  4. Es liest die zu testenden Websites aus der Datei sites_para_testar.txt und iteriert über sie.

  5. Es öffnet jede Swagger-UI-URL mit dem hinzugefügten bösartigen Payload.

  6. Es versucht zu prüfen, ob ein XSS-Alert ausgelöst wird.

  7. Basierend auf dem Prüfergebnis speichert es die URLs in den Dateien valido.txt, talvezvalido.txt oder naovalido.txt.

  8. Es beendet den Chrome-Treiber.

Rechtlicher Hinweis

Dieses Skript wird ausschließlich zu Bildungs- und Sensibilisierungszwecken im Bereich Cybersicherheit bereitgestellt. Es sollte nicht für böswillige oder illegale Zwecke verwendet werden. Der Autor übernimmt keine Verantwortung für eine missbräuchliche Verwendung dieses Skripts oder für Schäden, die aus seiner Verwendung entstehen.

Mitwirkung

Wenn Sie eine Möglichkeit finden, dieses Skript zu verbessern, oder Vorschläge haben, können Sie gerne einen Pull-Request erstellen.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Tool herunterladen