SQL Injection (SQLi)
SQL Injection em APIs modernas vai além de formulários. Veja Blind SQLi, Time-Based e técnicas em ORMs como SQLAlchemy e Sequelize com exemplos reais.
O Que É SQL Injection (SQLi)
SQL Injection (SQLi) permite que um atacante interfira nas consultas SQL executadas pela aplicação, injetando código SQL malicioso através de inputs não sanitizados. Em APIs REST modernas, o vetor mais comum não é o formulário de login — são parâmetros de filtro, ordenação, pesquisa e campos de body JSON que são interpolados diretamente em queries. Blind SQLi (baseado em tempo ou booleano) não retorna erros visíveis mas é igualmente crítico.
Exemplo Real de Ataque
# Time-Based Blind SQLi em parâmetro de ordenação
GET /api/v1/clientes?page=1&sort=nome
# Payload injetado:
GET /api/v1/clientes?page=1&sort=nome;+SELECT+SLEEP(5)--
# Resposta demora 5+ segundos → confirmado SQLi
# Extração via UNION (se colunas compatíveis):
GET /api/v1/clientes?search=a'+UNION+SELECT+1,username,password,4+FROM+users--Impacto no Negócio e Compliance
Extração completa do banco de dados (usuários, senhas, chaves de API, dados financeiros), bypass de autenticação, execução de comandos OS via xp_cmdshell (SQL Server), destruição de dados. Sob a LGPD, extração de dados pessoais via SQLi é notificação obrigatória à ANPD e exposição a multas de até 2% do faturamento (máx. R$ 50M).
Como Remediar
# ❌ INSEGURO — interpolação direta de input
query = f"SELECT * FROM usuarios WHERE nome LIKE '%{nome}%'"
cursor.execute(query)
# ✅ SEGURO — Parameterized queries
query = "SELECT * FROM usuarios WHERE nome LIKE %s"
cursor.execute(query, (f"%{nome}%",))
# ✅ Com ORM (SQLAlchemy) — NUNCA use text() com input do usuário
# ❌ Inseguro:
db.execute(text(f"SELECT * FROM users WHERE id = {user_id}"))
# ✅ Seguro:
db.query(User).filter(User.id == user_id).all()Como a Veyronn Detecta Esta Vulnerabilidade
Testamos SQLi em todos os parâmetros via payloads booleanos, time-based (SLEEP/WAITFOR) e out-of-band (DNS exfiltration) para detectar injeções cegas. Validamos ORMs — mesmo Sequelize e SQLAlchemy têm vulnerabilidades com raw queries.
Vulnerabilidades Relacionadas
Pronto para Contratar seu Próximo Pentest?
Adquira nossa avaliação pontual feita pelos melhores profissionais do mercado ou implemente o software da Veyronn 24/7.
