Pular para o conteúdo

Intermediário 8 desafios

Injeção de comando

Muito site chama um programa do sistema para fazer o trabalho pesado: dar um ping num servidor, gerar uma miniatura, compactar um arquivo. Quando ele monta esse comando colando o que você escreveu, sem separar o dado do comando, um ponto e vírgula no lugar certo faz o seu texto virar um segundo comando que o servidor obedece. Aqui você segue a injeção de comando em pedaços: primeiro reconhece onde a sua entrada chega no comando de shell, depois quebra o comando com um metacaractere, contorna um filtro ingênuo, injeta uma opção de linha de comando mesmo sem metacaractere, raciocina sobre uma falha cega em que a saída não aparece, encadeia para ler um segredo de brinquedo, lê o patch que fecha a falha e, no fim, junta tudo. Cada desafio termina no mesmo conserto: não chamar o shell, passar os argumentos como lista e validar a entrada contra uma lista de permissão. Tudo se resolve lendo o código e rodando um simulador offline que vem no desafio. Nada mira sistema real: o alvo é sempre uma ferramenta de brinquedo da estância fictícia PampaCloud.

O que você vai aprender

  • Injeção de comando
  • Entrada que vira comando
  • Metacaracteres do shell
  • Injeção de argumento
  • Injeção de comando cega
  • Como fechar a injeção de comando
  1. Web Com arquivo Exemplo resolvido

    Onde entra o comando

    Disponível
  2. Web Com arquivo Exemplo resolvido

    O ponto e vírgula

    0% de acerto, 0 resolveram

    Disponível
  3. Web Com arquivo

    Contornar o filtro

    Disponível
  4. Web Com arquivo

    Injeção de argumento

    Disponível
  5. Web Com arquivo

    Injeção cega

    0% de acerto, 0 resolveram

    Disponível
  6. Web Com arquivo

    Ler o segredo

    Disponível
  7. Web Com arquivo

    Lendo o patch

    Disponível
  8. Web Com arquivo

    Capstone: a cadeia inteira

    0% de acerto, 0 resolveram

    Disponível