Durante um teste de intrusão (pentest) em uma aplicação web
corporativa, um analista observou que o sistema possui uma
funcionalidade para importação de fotos de perfil a partir de uma
URL fornecida pelo usuário.
POST /api/perfil/carregar-imagem
Content-Type: application/json
{"url": "https://servidor-externo.com/minha-foto.png"}
Para verificar se a aplicação estava protegida e realizava a devida validação e restrição do destino, o analista alterou o payload da requisição para:
{"url": "http://127.0.0.1:8080/admin/status"}
Como resposta, a própria aplicação executou a requisição de rede internamente e retornou no corpo da resposta HTTP o painel de administração e métricas internas do sistema, que estava configurado para escutar apenas na interface de loopback local e estava inacessível externamente.
O teste de intrusão demonstrou a exploração bem-sucedida da vulnerabilidade, que é conhecida como:
POST /api/perfil/carregar-imagem
Content-Type: application/json
{"url": "https://servidor-externo.com/minha-foto.png"}
Para verificar se a aplicação estava protegida e realizava a devida validação e restrição do destino, o analista alterou o payload da requisição para:
{"url": "http://127.0.0.1:8080/admin/status"}
Como resposta, a própria aplicação executou a requisição de rede internamente e retornou no corpo da resposta HTTP o painel de administração e métricas internas do sistema, que estava configurado para escutar apenas na interface de loopback local e estava inacessível externamente.
O teste de intrusão demonstrou a exploração bem-sucedida da vulnerabilidade, que é conhecida como:
Provas
Questão presente nas seguintes provas