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

2

Eu faço este pequeno arquivo baseado em uma combinação de hexadecimal, que pode quebrar o gato e o terminal mostrando o arquivo com cat; reset não funcionou mais, é talvez colocar cat em uma espécie de loop? Por favor alguém pode explicar? Ele não causará nenhum problema, mas não será executado na produção, pois pode ter alguns efeitos colaterais que eu não vi:

Faça o download do Cat Killer Version 1

Faça o comando "cat brokecat" 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?

    
por Luciano Andress Martini 17.05.2016 / 19:38

2 respostas

3

Você pode fazer cat -v /usr/bin/vi para imprimir 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 o seu problema?

    
por 17.05.2016 / 19:47
1

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

Você pode determinar o tipo de arquivo executando o programa "arquivo", por exemplo, %código%. Usar 'cat' é meio que de baixo nível. Talvez tente usar "mais" ou "menos". Quando tento file /usr/bin/vi , obtenho more /usr/bin/vi .

Além disso, você pode redefinir seu terminal com o comando "reset (1)", mas você pode ter que digitar /usr/bin/vi: Not a text file , ou seja, a string "reset" seguida por "control-J", se o terminal terminar no modo raw.

    
por 17.05.2016 / 20:07

Tags