Pular para o conteúdo

Intermediário 7 desafios

Desserialização insegura

Todo programa guarda dados em bytes (num cookie, num token, num arquivo) e depois os lê de volta para virar objeto na memória. Esse "ler de volta" se chama desserialização. O problema aparece quando os bytes vêm do cliente: quem controla os bytes controla o objeto. Aqui você aprende a reconhecer onde um dado não confiável vira objeto só de ler o código, a adulterar um campo num blob codificado e ser aceito, a entender uma assinatura que existe mas ninguém confere, a ver como um tipo embutido no próprio dado escolhe qual código roda, a entender (só como conceito) por que desserializar classe arbitrária abre caminho para cadeia de gadgets, e, no fim, a ler o patch que fecha a falha. Tudo em alvos de brinquedo que vêm no desafio, com oráculos offline e nomes inventados: nada aponta para sistema real e não há exploit pronto.

O que você vai aprender

  • O que é desserialização insegura
  • Base64
  • Adulterar um dado serializado
  • Assinatura presente mas não verificada
  • O tipo embutido no dado
  • Cadeia de gadgets (o conceito)
  • Como fechar a falha
  1. Web Com arquivo Exemplo resolvido

    Onde o dado vira objeto

    0% de acerto, 0 resolveram

    Disponível
  2. Web Com arquivo Exemplo resolvido

    Virando admin

    0% de acerto, 0 resolveram

    Disponível
  3. Web Com arquivo

    A assinatura que ninguém confere

    Disponível
  4. Web Com arquivo

    O tipo que vem no dado

    Disponível
  5. Web Com arquivo

    Cadeia de gadgets

    Disponível
  6. Web Com arquivo

    Lendo o patch

    Disponível
  7. Web Com arquivo

    Exportando o cofre

    Disponível