安全执行cat命令而不执行任意代码

安全执行cat命令而不执行任意代码

我基于十六进制的组合做了这个小文件,它可以破坏 cat 和显示带有 cat 文件的终端;重置不再有效,它可能将猫置于某种循环中?请问有人可以解释一下吗?它不会引起任何问题,但不要在生产中运行它,因为它可能会产生一些我没有看到的副作用:

下载猫杀手版本 1

执行命令“cat brocat”,你就会看到。

也许这是 cat 的安全问题,它可以执行任意代码?

再比如:cat /usr/bin/vi 可以执行一些最后找不到的命令!

有没有更安全的运行cat的方法?

答案1

您可以cat -v /usr/bin/vi让它将不可打印的字符打印为 ASCII 表示形式,而不是终端可能尝试处理的实际控制字符。这能解决你的问题吗?

答案2

你真的不应该“cat”任意文件。即使该文件不是恶意的,这也是一个坏主意。

您可以通过运行“文件”程序来确定文件“类型”,例如file /usr/bin/vi。无论如何,使用“cat”都是低级的。也许尝试使用“更多”或“更少”。当我尝试时,more /usr/bin/vi我得到了/usr/bin/vi: Not a text file

另外,您可以使用“reset(1)”命令重置终端,但resetC-J如果终端最终处于原始模式,您可能必须键入 ,即字符串“reset”后跟“control-J”。

相关内容