安全執行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”。

相關內容