Ferramenta de extração de dados via Time-Based Blind SQL Injection — desenvolvida para fins educacionais e uso em ambientes autorizados (CTFs, labs, pentests).
O SQLBlind explora vulnerabilidades de Blind SQL Injection usando a função SLEEP() do MySQL como oráculo binário: se a query demorar ≥ 3 segundos, o caractere testado está correto. O processo é repetido caractere por caractere até reconstruir o valor completo.
Payload: ' union select 1,2,if(substring(TRIM((SELECT ...)),1,N)='guess',sleep(3),NULL) -- -
git clone https://github.com/joaocalciolari07/sqlblind
cd sqlblind
pip install requests- Edite a URL alvo na função
req():
url = "http://SEU_ALVO_AQUI" # Altere para o endereço do lab/CTF- Execute:
python sqlblind.py- Escolha uma opção no menu interativo:
╔══════════════════════════════════════════╗
║ SQLBlind - Menu ║
╠══════════════════════════════════════════╣
║ 1. Descobrir banco de dados ║
║ 2. Descobrir tabelas ║
║ 3. Descobrir colunas ║
║ 4. Extrair dados de uma coluna ║
║ 5. ORDER BY (contar colunas) ║
║ 6. AUTOMATICO COMPLETO ║
║ 0. Sair ║
╚══════════════════════════════════════════╝
| Função | Descrição |
|---|---|
fuzz() |
Descobre o banco de dados atual |
fuzz_tables(db) |
Lista todas as tabelas de um banco |
fuzz_columns(db, table) |
Lista todas as colunas de uma tabela |
fuzz_data(table, col) |
Extrai os dados de uma coluna |
orderby() |
Determina o número de colunas via ORDER BY |
auto() |
Executa extração completa automaticamente |
- Técnica: Time-Based Blind SQL Injection (UNION + IF + SLEEP)
- SGBD alvo: MySQL / MariaDB
- Charset testado:
[0-9][a-z][A-Z]_-@. - Limite por valor: 64 caracteres (configurável via
MAX_LEN) - Threshold de tempo: 3 segundos
Esta ferramenta é destinada exclusivamente a ambientes controlados e autorizados: CTFs, laboratórios de segurança, treinamentos e pentests com permissão explícita.
O uso em sistemas sem autorização é ilegal e de responsabilidade exclusiva do usuário.
- Python 3.x
requests