Pular para o conteúdo

Intermediário 8 desafios

XXE

Muito sistema recebe dados em XML: uma fatura, uma configuração, um documento. O XML tem um recurso antigo, o DTD, onde o documento pode declarar entidades: apelidos que o parser troca pelo valor na hora de ler. Uma entidade externa manda o parser ir buscar um arquivo ou uma URL e colar o conteúdo dentro do documento. Quando o parser está ligado para resolver essas entidades e aceita o XML que você escreve, você faz o servidor ler arquivos locais, alcançar serviços internos e vazar dados por fora. Isso é XXE (entidade externa de XML). Aqui você aprende a reconhecer o parser que confia no DTD, montar uma entidade que lê um arquivo de brinquedo, ler um segredo fictício, entender a negação de serviço do billion laughs, usar entidades de parâmetro para vazar dados fora de banda, transformar o XXE em SSRF contra um serviço interno de brinquedo e, no fim, ler o patch que fecha a falha. Tudo em alvos de brinquedo que vêm no desafio, com IPs de documentação e nomes inventados: um parser que resolve entidades só nos arquivos de brinquedo demonstra a falha sem tocar em nada real.

O que você vai aprender

  • XML, DTD e entidades
  • Entidade externa
  • Billion laughs
  • Entidades de parâmetro e fora de banda
  • O que é SSRF
  • Serviços internos e localhost
  • Fechando o XXE
  1. Web Com arquivo Exemplo resolvido

    O XML que confia

    Disponível
  2. Web Com arquivo Exemplo resolvido

    A primeira entidade

    0% de acerto, 0 resolveram

    Disponível
  3. Web Com arquivo

    Lendo o segredo

    Disponível
  4. Web Com arquivo

    Contando as risadas

    Disponível
  5. Web Com arquivo

    A entidade de parâmetro

    Disponível
  6. Web Com arquivo

    Quando o XXE vira SSRF

    0% de acerto, 0 resolveram

    Disponível
  7. Web Com arquivo

    Lendo o patch do XXE

    Disponível
  8. Web Com arquivo

    Capstone do XXE

    0% de acerto, 0 resolveram

    Disponível