Execução segura do comando cat sem executar código arbitrário

Execução segura do comando cat sem executar código arbitrário

Eu faço esse pequeno arquivo baseado em uma combinação de hexadecimal, que pode quebrar cat e o terminal mostrando o arquivo com cat; reset não funciona mais, talvez esteja colocando cat em uma espécie de loop? Por favor, alguém pode explicar? Não causará nenhum problema, mas não execute em produção, pois pode ter alguns efeitos colaterais que não vi:

Baixar Cat Killer versão 1

Faça o comando "cat quebroucat" e você verá.

Talvez este seja um problema de segurança com o cat, que pode executar código arbitrário?

Outro exemplo: cat /usr/bin/vi pode executar alguns comandos não encontrados no final!

Existe uma maneira mais segura de executar o gato?

Responder1

Você poderia fazer cat -v /usr/bin/vicom que ele imprimisse os caracteres não imprimíveis como representações ASCII, não como caracteres de controle reais que o terminal pode tentar processar. Isso resolve seu problema?

Responder2

Você realmente não deveria estar 'gatando' arquivos arbitrários. É uma má ideia, mesmo que o arquivo não seja malicioso.

Você pode determinar o 'tipo' do arquivo executando o programa 'arquivo', por exemplo file /usr/bin/vi, . Usar 'cat' é de baixo nível de qualquer maneira. Talvez tente usar 'mais' ou 'menos'. Quando tento more /usr/bin/vieu consigo /usr/bin/vi: Not a text file.

Além disso, você pode redefinir seu terminal com o comando "reset(1)", mas pode ser necessário digitar resetC-J, ou seja, a string "reset" seguida de "control-J", se o terminal terminar no modo bruto.

informação relacionada