Análise de Vulnerabilidades Comuns em Aplicações Web — LDL Security

 · 3 min read

Análise de Vulnerabilidades Comuns em Aplicações Web

Aplicações web são alvos constantes de ataques. Segundo o OWASP Top 10, 94% das falhas estão relacionadas a vulnerabilidades conhecidas e evitáveis. Neste post, exploramos as falhas mais críticas, exemplos reais e práticas para mitigá-las.


1. SQL Injection (SQLi)

O que é?
Uma vulnerabilidade que permite injetar código SQL malicioso em consultas de banco de dados, geralmente via campos de entrada não validados.

Exemplo Técnico

-- Código vulnerável (PHP)
$user = $_GET['username'];
$query = "SELECT * FROM users WHERE username = '$user'";

-- Ataque: Inserir ' OR '1'='1'-- 
-- Consulta resultante:
SELECT * FROM users WHERE username = '' OR '1'='1'--'
Isso retorna todos os usuários!

📈 Caso Real:
Em 2012, o Sony Pictures sofreu um ataque via SQLi, expondo dados de 1 milhão de usuários.

Prevenção
Use consultas parametrizadas (Prepared Statements):

# Exemplo em Python (SQLAlchemy)
stmt = text("SELECT * FROM users WHERE username = :user")
result = db.execute(stmt, {"user": user_input})
  • Valide e sanitize entradas (regex, whitelist).
  • Adote ORMs (Hibernate, Entity Framework).

2. Cross-Site Scripting (XSS)

O que é?
Ataques onde scripts maliciosos são injetados em páginas web, executados no navegador da vítima.

Tipos de XSS

TipoDescrição
StoredScript armazenado no servidor (ex: comentários).
ReflectedScript refletido via URL (ex: phishing).
<!-- Exemplo de XSS Refletido -->
<input type="text" value="<?php echo $_GET['search']; ?>">
<!-- Ataque: ?search=<script>alert('Hacked')</script> -->

📈 Caso Real:
O worm Samy (MySpace, 2005) usou XSS para se autorreplicar, afetando 1 milhão de perfis em horas.

Prevenção
Escape dados dinâmicos:

<!-- Usar funções de escape (ex: PHP htmlspecialchars) -->
<input value="<?= htmlspecialchars($_GET['search']) ?>">
  • Implemente Content Security Policy (CSP):
    Content-Security-Policy: default-src 'self'
  • Use frameworks modernos (React, Angular) que escapam automaticamente.

3. Cross-Site Request Forgery (CSRF)

O que é?
Ataque que engana usuários para executar ações não intencionais em aplicações autenticadas.

Exemplo de Ataque

<!-- Site malicioso -->
<img src="https://banco.com/transfer?dest=123&valor=10000" width="0" height="0">

Se o usuário estiver logado, a transferência é executada!

📈 Caso Real:
Em 2018, o Netflix teve uma vulnerabilidade CSRF que permitia adicionar dispositivos à conta sem consentimento.

Prevenção
Use tokens anti-CSRF:

<form action="/transfer" method="POST">
  <input type="hidden" name="csrf_token" value="RANDOM_STRING">
</form>
  • Configure cookies com SameSite=Strict.

4. Insecure Direct Object References (IDOR)

O que é?
Acesso não autorizado a recursos manipulando identificadores (IDs) em URLs ou parâmetros.

Exemplo

GET /api/user/123/dados
Alterar para /api/user/456/dados (sem validação de permissão)

Prevenção

  • Implemente controle de acesso baseado em roles (RBAC).
  • Use UUIDs ou hashes em vez de IDs sequenciais.

5. Security Misconfigurations

O que é?
Configurações inadequadas em servidores, APIs ou serviços (ex: credenciais padrão, debug habilitado).

📈 Caso Real:
O breach da Equifax (2017) ocorreu devido a um servidor Apache não atualizado.

Prevenção

  • Remova serviços desnecessários.
  • Use ferramentas como OWASP ZAP para scan contínuo.

✅ Checklist de Desenvolvimento Seguro

✔ Valide todas as entradas do usuário.
✔ Use HTTPS e HSTS.
✔ Atualize dependências regularmente (npm audit).
✔ Revise permissões de arquivos (ex: .env não versionado).
✔ Teste com ferramentas como Burp Suite e SQLMap.


📚 Recursos Recomendados

📖 Livro: The Web Application Hacker’s Handbook
🎓 Curso: OWASP Top 10 na Udemy
🛠 Ferramentas: PortSwigger Academy

🔐 Proteger aplicações web é uma jornada contínua. Comece hoje!

    Share:
    Voltar ao Blog