Ejecución segura del comando cat sin ejecutar código arbitrario

Ejecución segura del comando cat sin ejecutar código arbitrario

Hago este pequeño archivo basado en una combinación de hexadecimal, que puede romper cat y la terminal muestra el archivo con cat; El reinicio ya no funciona, ¿tal vez está poniendo al gato en una especie de bucle? ¿Por favor alguien puede explicar? No causará ningún problema, pero no lo ejecute en producción, porque puede tener algunos efectos secundarios que no vi:

Descargar Cat Killer Versión 1

Haz el comando "cat breakcat" y verás.

¿Quizás esto sea un problema de seguridad con cat, que puede ejecutar código arbitrario?

Otro ejemplo: cat /usr/bin/vi puede ejecutar algunos comandos que no se encuentran al final.

¿Existe una forma más segura de ejecutar cat?

Respuesta1

Podría hacer cat -v /usr/bin/vique imprima los caracteres no imprimibles como representaciones ASCII, no como caracteres de control reales que el terminal puede intentar procesar. ¿Eso resuelve tu problema?

Respuesta2

Realmente no deberías estar manipulando archivos arbitrarios. Es una mala idea incluso si el archivo no es malicioso.

Puede determinar el 'tipo' de archivo ejecutando el programa 'archivo', por ejemplo file /usr/bin/vi. Usar 'gato' es de bajo nivel de todos modos. Quizás intente usar "más" o "menos". Cuando lo intento more /usr/bin/vilo consigo /usr/bin/vi: Not a text file.

Además, puedes restablecer tu terminal con el comando "reset(1)", pero es posible que tengas que escribir resetC-J, es decir, la cadena "reset" seguida de "control-J", si el terminal termina en modo sin formato.

información relacionada