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]);