Testes de Vulnerabilidade em Formulários de Login (SQL Injection)
Este documento explica como identificar vulnerabilidades de SQL Injection e como sistemas
modernos bloqueiam tentativas como 1' OR '1'='1.
1. O que é SQL Injection?
SQL Injection é uma falha onde o usuário consegue inserir comandos SQL dentro de campos
de login
para manipular o banco de dados. Exemplo clássico:
' OR '1'='1
2. Por que alguns sistemas não são vulneráveis?
• Query preparada / prepared statements
• mysqli->prepare() ou PDO::prepare()
• Validação forte no backend (backend SEMPRE valida)
• Mesmo modificando o HTML no navegador o servidor não confia no cliente
3. Modificar o HTML no navegador
Alterar <input type="email"> para <input type="text"> funciona apenas visualmente.
O backend ainda valida e recusa:
- Formato de e-mail
- Strings suspeitas
- Aspas, OR, AND, etc.
4. Como testar corretamente vulnerabilidades
• Verifique se o sistema usa prepare()
• Teste entradas especiais:
'"
' OR '1'='1
admin' --
admin' #
• Observe se retorna:
- Erros SQL
- Login sem senha
- Respostas inesperadas
Se o sistema retorna apenas "inválido", provavelmente está seguro.
5. Observação
Este material é apenas para fins educacionais dentro de ambiente controlado (XAMPP
local).
Nunca use SQL Injection em sistemas reais.