Sink no cliente
Os desafios anteriores dependiam de o servidor devolver a sua entrada. Aqui o servidor nem participa: o viewer.html carrega normal e o próprio JavaScript do cliente lê o que está depois do # no endereço (a fonte) e o coloca em innerHTML (o sink). Esse pedaço depois do #, o fragmento, nem chega a ser enviado ao servidor.
A página guarda window.staffToken (base64), legível por qualquer código que rode nela. Abra viewer.html, ponha no fragmento um payload que leia e mostre o staffToken, e decodifique: esse é o flag.
O flag tem o formato tocaia{...}. Um exemplo de mesma forma que NÃO é a resposta: tocaia{server_saw_it}.
Arquivos do desafio
- Baixar
viewer.html
707 B · SHA-256 c4f2aeb6ec5ddc98…
Tudo se resolve com ferramentas gratuitas.
Entre para ver o assunto deste desafio.
A solução comentada aparece depois que você resolve.