SQLi Timing Based
Como Explorar
SQL Injection (Timing Based) explora o tempo de resposta do servidor para inferir informações. O atacante injeta comandos que causam atrasos (ex: SLEEP) e observa o comportamento.
terminal
Exemplo:
?id=1' AND SLEEP(5)--
Se a resposta demorar, a injeção foi bem-sucedida.- Insira payloads que causam atraso proposital.
- Meça o tempo de resposta para cada requisição.
- Utilize scripts ou ferramentas para automatizar testes.
Por que acontece
Ocorre quando a aplicação executa comandos SQL injetados que afetam o tempo de resposta, sem validação adequada das entradas.
- Execução de comandos SQL sem validação.
- Banco de dados permite funções de delay (ex: SLEEP, BENCHMARK).
Como Corrigir
- Use queries parametrizadas/prepared statements.
- Desabilite funções perigosas no banco de dados.
- Valide e sanitize todas as entradas.
terminal
// Exemplo seguro em Node.js (MySQL)
const [rows] = await conn.execute('SELECT * FROM users WHERE id = ?', [id]);