Pular para o conteúdo

Web

Contando as risadas

Nem todo XXE lê arquivo. Um XML pequeno pode derrubar o parser sozinho. O lol.xml é o clássico billion laughs: entidades que se referenciam em camadas, cada nível repetindo o anterior dez vezes.

Nunca mande um parser de verdade expandir isso, ele trava. Em vez disso, raciocine: quantas vezes a entidade base lol0 seria produzida quando o parser resolvesse a entidade usada no corpo? Dá para contar os níveis e multiplicar. O count.mjs calcula isso sem nunca montar o texto, para você conferir. A flag é esse número.

Formato: tocaia{...} em minúsculas, só o número (sem pontos nem vírgulas). Exemplo com a mesma forma, que não é a resposta: tocaia{512}.

Arquivos do desafio

  • lol.xml

    805 B · SHA-256 57c5e43126469395…

    Baixar
  • count.mjs

    2,4 KB · SHA-256 144060abd77269c7…

    Baixar

Tudo se resolve com ferramentas gratuitas.