SQLi Blind

Como Explorar

SQL Injection (Blind) ocorre quando a aplicação não retorna mensagens de erro, mas ainda é vulnerável. O atacante utiliza respostas booleanas (true/false) para inferir informações do banco.

terminal
Exemplo:

?id=1 AND 1=1 -- (retorna resultado normal)
?id=1 AND 1=2 -- (retorna página diferente ou vazia)
  • Teste respostas diferentes para condições verdadeiras/falsas.
  • Utilize payloads booleanos para mapear dados.
  • Automatize com ferramentas como sqlmap.

Por que acontece

Acontece quando a aplicação esconde mensagens de erro, mas ainda executa comandos SQL sem validação adequada. O atacante explora diferenças de resposta para obter dados.

  • Falta de queries parametrizadas.
  • Respostas diferentes para condições verdadeiras/falsas.
  • Ausência de tratamento de exceções adequado.

Como Corrigir

  • Use queries parametrizadas/prepared statements.
  • Padronize respostas para todas as requisições.
  • Valide e sanitize todas as entradas.
terminal
// Exemplo seguro em Node.js (MySQL)
const [rows] = await conn.execute('SELECT * FROM users WHERE id = ?', [id]);