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