Shellshock, a função que virou comando
Em 2014, o Shellshock (CVE-2014-6271) mostrou que o próprio Bash podia ser enganado por uma variável de ambiente. O Bash permitia guardar uma função dentro de uma variável de ambiente, e a função era importada quando o shell começava. O bug: o Bash antigo não parava no fim da função. Tudo que viesse DEPOIS da chave } de fechamento ele executava na hora. Como servidores web passam os cabeçalhos do pedido para os scripts CGI como variáveis de ambiente, bastava mandar um cabeçalho com o formato certo para rodar comando no servidor.
Você tem env-value.txt (a variável de ambiente que chega ao processo), cgi-notes.txt (como o CGI vira variável de ambiente) e shellshock_demo.py, um reprodutor de brinquedo que imita o Bash antigo e o corrigido, sem chamar shell de verdade. Rode o reprodutor com python3 shellshock_demo.py e diga o que o comando escondido depois do } imprime quando o Bash vulnerável o executa.
Responda no formato de flag com essa palavra, por exemplo tocaia{demo-only} (que não é a resposta).
Arquivos do desafio
Exemplo resolvido
Este desafio vem com a solução em passos. Abra um de cada vez e tente o próximo sozinho antes de abrir. Cada passo aberto conta como ajuda no seu rating.
Passo 1 Veja o valor que chega
Passo 2 Separe a função do resto
Passo 3 Rode o reprodutor
Tudo se resolve com ferramentas gratuitas.
Entre para ver o assunto deste desafio.
A solução comentada aparece depois que você resolve.