SSRF (Server-Side Request Forgery)

Como Explorar

SSRF permite que um atacante faça o servidor realizar requisições para destinos arbitrários, podendo acessar recursos internos ou externos.

terminal
Exemplo:

GET /fetch?url=http://localhost:8080/admin
  • Envie URLs controladas pelo atacante.
  • Tente acessar serviços internos (localhost, 127.0.0.1).
  • Observe respostas do servidor.

Por que acontece

Ocorre quando a aplicação consome URLs fornecidas pelo usuário sem validação, permitindo requisições para destinos não previstos.

  • Falta de validação de URLs.
  • Permissão para acessar endereços internos.
  • Uso de bibliotecas HTTP sem restrições.

Como Corrigir

  • Valide e restrinja URLs permitidas.
  • Bloqueie acesso a endereços internos (localhost, redes privadas).
  • Use listas de permissões (whitelists) para destinos externos.
terminal
// Exemplo de validação de URL em Node.js
const url = new URL(userInput);
if (url.hostname === 'localhost' || url.hostname.startsWith('192.168.')) {
  throw new Error('Endereço não permitido');
}