File Upload Vulnerabilities

Como Explorar

Vulnerabilidades de upload de arquivos permitem que um atacante envie arquivos maliciosos para o servidor, podendo executar código, sobrescrever arquivos ou obter acesso não autorizado.

terminal
Exemplo:

Envio de um arquivo .php em um campo de upload:

<?php system($_GET['cmd']); ?>
  • Tente enviar arquivos com extensões perigosas (.php, .exe).
  • Verifique se o arquivo é executado no servidor.
  • Teste bypass de validações (dupla extensão, MIME type).

Por que acontece

Ocorre quando o servidor não valida corretamente o tipo, extensão ou conteúdo dos arquivos enviados.

  • Falta de validação de extensão e MIME type.
  • Permissão de upload em diretórios executáveis.
  • Ausência de restrições de tamanho e conteúdo.

Como Corrigir

  • Valide extensão, MIME type e conteúdo dos arquivos.
  • Armazene uploads fora do diretório público.
  • Implemente restrições de tamanho e tipo.
terminal
// Exemplo de validação em Node.js (multer)
const allowed = ['.jpg', '.png'];
if (!allowed.includes(fileExt)) throw new Error('Extensão não permitida');