Pular para o conteúdo

Web

A saída sem cuidado

O widget de chat da CampoClaro está em reply.cjs, com o mesmo modelo de brinquedo (model.cjs). O app pega a resposta do modelo e a coloca numa página como HTML, sem escapar nada, e depois entrega essa página a um navegador de brinquedo. O navegador de brinquedo nao desenha de verdade: ele só avisa quando o HTML contém conteúdo ativo (um script ou um manipulador de evento), porque isso rodaria num navegador real.

O truque é que a resposta do modelo depende da sua entrada. Faça o modelo responder com um trecho de HTML ativo e veja o navegador de brinquedo dispará-lo.

A flag é o código que o navegador de brinquedo imprime quando o conteúdo ativo roda.

A flag tem a forma tocaia{...}, por exemplo tocaia{safe_render} (que nao é a resposta).

Arquivos do desafio

  • model.cjs

    8,3 KB · SHA-256 f0eb7da653dfdf0b…

    Baixar
  • reply.cjs

    1,4 KB · SHA-256 630655eb8c67906b…

    Baixar

Tudo se resolve com ferramentas gratuitas.