임의의 코드를 실행하지 않고 cat 명령을 안전하게 실행

임의의 코드를 실행하지 않고 cat 명령을 안전하게 실행

나는 cat을 깨뜨릴 수 있는 16진수 조합과 cat이 포함된 파일을 표시하는 터미널을 기반으로 이 작은 파일을 만듭니다. 재설정이 더 이상 작동하지 않습니다. 고양이를 일종의 루프에 빠뜨리는 것일 수도 있습니다. 누군가 설명해 주실 수 있나요? 문제가 발생하지는 않지만 프로덕션 환경에서는 실행하지 마세요. 제가 보지 못한 몇 가지 부작용이 있을 수 있기 때문입니다.

고양이 킬러 버전 1 다운로드

"cat brokencat" 명령을 실행하면 알 수 있습니다.

어쩌면 이것은 임의의 코드를 실행할 수 있는 cat의 보안 문제일까요?

또 다른 예: cat /usr/bin/vi는 마지막에 발견되지 않은 일부 명령을 실행할 수 있습니다!

고양이를 실행하는 더 안전한 방법이 있습니까?

답변1

cat -v /usr/bin/vi인쇄할 수 없는 문자를 터미널이 처리하려고 시도하는 실제 제어 문자가 아닌 ASCII 표현으로 인쇄하도록 할 수 있습니다 . 문제가 해결되었나요?

답변2

임의의 파일을 'cat'하면 안 됩니다. 파일이 악성이 아니더라도 나쁜 생각입니다.

'file' 프로그램을 실행하여 파일 '유형'을 결정할 수 있습니다(예 file /usr/bin/vi: . 어쨌든 'cat'을 사용하는 것은 일종의 낮은 수준입니다. 아마도 'more' 또는 'less'를 사용해 보세요. 시도 more /usr/bin/vi하면 /usr/bin/vi: Not a text file.

또한 "reset(1)" 명령을 사용하여 터미널을 재설정할 수 있지만 터미널이 원시 모드로 종료되면 를 입력해야 할 수도 있습니다 resetC-J. 즉, 문자열 "reset" 뒤에 "control-J"를 입력해야 할 수도 있습니다.

관련 정보