Recursos do lado do servidor podem se tornar vetores de ataque quando buscam URLs fornecidas pelo usuário, resolvem entidades XML ou confiam em campos JWT sem verificação sólida. Este curso explora SSRF, XXE e manipulação de JWT por meio de exercícios no terminal contra serviços deliberadamente vulneráveis.
Você avançará da identificação de cada comportamento à demonstração de seu impacto: alcançar um serviço interno, ler arquivos locais, alterar claims de tokens e recuperar um segredo de assinatura. O desafio final encadeia a divulgação XXE com a criação de um token administrativo HS256 válido para uma API protegida.
O que você aprenderá
- Identificar um parâmetro que busca URLs e verificar que o servidor realiza a requisição de saída.
- Contornar um filtro literal de localhost com outra representação de IP e alcançar um serviço administrativo interno.
- Consultar um serviço simulado de metadados em nuvem por SSRF e inspecionar credenciais preparadas.
- Confirmar o processamento XML e a expansão de entidades e criar uma entidade externa que leia
/etc/passwd. - Extrair um JWT, separar suas três partes e decodificar o cabeçalho e os claims em Base64Url.
- Forjar um token administrativo sem assinatura contra uma API que aceita incorretamente o algoritmo
none. - Encadear a divulgação XXE de um segredo com assinatura HS256 em Python para acessar uma flag protegida.
Para quem é este curso
Este curso intermediário é voltado a estudantes de segurança web que sabem construir requisições básicas e querem estudar limites de confiança em componentes do servidor. É adequado para futuros pentesters, estudantes de segurança de APIs e desenvolvedores que buscam exemplos de busca insegura de URLs, configuração de parser XML e verificação JWT.
Pré-requisitos: Familiaridade com terminal Linux e curl, métodos e cabeçalhos HTTP, sintaxe básica XML e JSON, processamento de texto no shell e conceitos Base64, além de saber ler um script Python curto.
Ambiente de aprendizagem: Um terminal Ubuntu 22.04 com aplicações vulneráveis locais nas portas 5000 e 8080, um serviço de metadados simulado em 169.254.169.254:8000 e a biblioteca Python jwt. A primeira verificação SSRF pede à aplicação local que busque example.com; os alvos posteriores são serviços preparados do laboratório.
Perguntas frequentes
As credenciais de metadados em nuvem são reais?
Não. O endpoint e sua resposta no estilo IAM são simulações hospedadas dentro do laboratório na porta 8000. Eles demonstram o caminho da requisição e o impacto potencial sem usar uma conta real de nuvem.
O laboratório XXE usa Burp Suite ou um proxy gráfico?
Não. Você cria e edita um arquivo de payload XML no terminal e o envia com curl. O fluxo ensina a estrutura da requisição e o comportamento do parser sem ferramenta gráfica.
Decodificar um JWT é o mesmo que quebrar sua criptografia?
Não. Cabeçalhos e payloads JWT usam Base64Url e normalmente são legíveis; nestes laboratórios, eles não são criptografados. A segurança depende da verificação correta da assinatura e da proteção do segredo.
Como os dois ataques JWT são diferentes?
O laboratório guiado explora um servidor que aceita incorretamente alg: none, portanto o token não tem assinatura. No desafio final, o servidor exige HS256 corretamente: primeiro você revela o segredo via XXE e depois gera um token administrativo realmente assinado.





