Pular para o conteúdo

Web

SSTI às cegas

Em check.cjs, a prévia é renderizada como template, mas o servidor joga fora a saída: ele só responde 200 OK (renderizou) ou 500 Internal Server Error (o motor levantou um erro). Não há texto de volta para ler o segredo. Mesmo assim, o contexto tem a variável secret, e você consegue arrancar o valor um caractere por vez.

O contexto traz ajudantes: eq(a, b), char(s, i) (erra se o índice não existe), len(s) e assert(cond) (erra se a condição for falsa). Monte uma sonda que só dá 200 quando um palpite está certo, e leia o segredo caractere a caractere. O segredo é a flag.

Responda no formato de flag com o segredo recuperado, por exemplo tocaia{exemplo} (que não é a resposta).

Arquivos do desafio

  • engine.cjs

    5,7 KB · SHA-256 9e6f3d966f4359a3…

    Baixar
  • check.cjs

    1,8 KB · SHA-256 e5f669135dbcd07c…

    Baixar

Tudo se resolve com ferramentas gratuitas.