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');