Pular para o conteúdo

Intermediário 8 desafios

Autenticação e tokens

Depois do login, um site precisa lembrar quem é você de uma página para a outra. Para isso ele entrega um crachá: um token ou um identificador de sessão que o seu navegador devolve a cada pedido. Quando esse crachá é feito ou conferido do jeito errado, qualquer pessoa pode preencher o seu, ou o do administrador. Aqui você segue a autenticação em pedaços: primeiro lê um JSON Web Token (JWT) e descobre que ele não é secreto, depois forja um token num servidor que não confere a assinatura, reaproveita um token vencido, quebra um segredo HMAC fraco para assinar o seu próprio token, troca o crachá que o cliente mesmo guarda, adivinha um identificador de sessão previsível e, no fim, junta tudo contra um servidor já endurecido. Entre os ataques, um desafio de ler o patch mostra o conserto. Tudo se resolve lendo o token, o código e o log que vêm no desafio, com um pouco de Python. Nada mira sistema real: o alvo é sempre a Galpão Logística, uma cooperativa de frete de brinquedo.

O que você vai aprender

  • Anatomia de um JWT
  • O algoritmo none
  • Conferir um token direito
  • Segredo HMAC fraco
  • Funções de hash
  • Sessão guardada no cliente
  • Cookies
  • Identificadores de sessão
  1. Web Com arquivo Exemplo resolvido

    Ler um JWT

    Disponível
  2. Web Com arquivo Exemplo resolvido

    O algoritmo none

    Disponível
  3. Web Com arquivo

    Token sem prazo

    Disponível
  4. Web Com arquivo

    Segredo fraco

    Disponível
  5. Web Com arquivo

    O crachá que você preenche

    0% de acerto, 0 resolveram

    Disponível
  6. Web Com arquivo

    Sessão previsível

    0% de acerto, 0 resolveram

    Disponível
  7. Web Com arquivo

    Lendo o patch

    0% de acerto, 0 resolveram

    Disponível
  8. Web Com arquivo

    Capstone

    0% de acerto, 0 resolveram

    Disponível