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
- Web Com arquivo Exemplo resolvido
Onde o dado vira objeto
0% de acerto, 0 resolveram
Disponível - Web Com arquivo Exemplo resolvido
Virando admin
0% de acerto, 0 resolveram
Disponível - Web Com arquivo
A assinatura que ninguém confere
Disponível - Web Com arquivo
O tipo que vem no dado
Disponível - Web Com arquivo
Cadeia de gadgets
Disponível - Web Com arquivo
Lendo o patch
Disponível - Web Com arquivo
Exportando o cofre
Disponível