Pular para o conteúdo

Web

Injeção de argumento

O avatars.py da PampaCloud faz tudo "certo": não usa shell. Ele chama a ferramenta gust passando os argumentos como lista, subprocess.run(["gust", member]), então ; e | são inofensivos. Mesmo assim, o seu texto pode mudar o que o programa faz.

O problema: o nome do membro vira um argumento por conta própria, e o app esqueceu de pôr -- antes dele. Quando um argumento começa com -, o gust acha que é uma OPÇÃO, não um nome. Leia o manual (gust.txt), veja que opção faz o gust cuspir um segredo, e passe ela como se fosse o nome do membro.

Rode python3 simulate.py "ana" para ver o normal. A flag tem o formato tocaia{...}, por exemplo tocaia{exemplo_que_nao_e}.

Arquivos do desafio

  • avatars.py

    540 B · SHA-256 5a97821651013348…

    Baixar
  • gust.txt

    557 B · SHA-256 3c9ffe6ea00e094b…

    Baixar
  • simulate.py

    2,4 KB · SHA-256 b156a913d4d699a2…

    Baixar

Tudo se resolve com ferramentas gratuitas.