명령 주입이란 무엇이며 명령 주입으로부터 자신을 보호하는 방법은 무엇입니까?

명령 주입은 다른 사람의 호스트 운영 체제에서 명령을 실행하는 것과 관련된 사이버 공격입니다. 여기에는 호스트 컴퓨터에서 파일 제거 및 데이터 변경이 포함될 수 있습니다. 이러한 유형의 공격은 프로그래머가 입력이 악의적인지 여부를 확인하기 위해 충분한 입력 유효성 검사를 사용하지 않을 때 발생합니다.

예를 들어 Python에서는 다음과 같이 코딩할 수 있습니다.

import os

domain_name = input()

os.system('ping ' + domain_name)


그런 다음 내 컴퓨터에서 이것을 실행할 때 다음과 같이 google.comdomain_name 로 입력할 수 있습니다.

보시다시피 Google에서 응답을 받습니다.

그러나 나만큼 친절하지 않은 사람이나 입력하라는 메시지가 표시되면 다른 것을 입력할 수 있습니다. 사용자가 명령줄에서 우리에게 말한 내용만echo 원한다고 가정해 보겠습니다.
pingos.systemos.system('echo ' + input)
하지만 이번에는 원하는 것; ls 뒤에 echo를 추가해 보겠습니다.

보시다시피 example.py 인 현재 작업 디렉토리에서 파일을 가져옵니다. 이것은 나쁘다.

한 단계 더 나아가 rm 명령을 사용하여 다음과 같은 시스템에서 파일을 제거할 수도 있습니다.hello; rm example.py


보시다시피 이제 파일이 컴퓨터에서 사라졌습니다. 확인하지 않은 상태로 두면 수많은 보안 문제가 발생할 수 있습니다. 이를 방지하기 위해(특히 Python에서) call 모듈의 subprocess 메서드를 사용할 수 있습니다. 와 같은

from subprocess import call

user_input = input()

call(["echo", user_input])

call 함수는 단일 명령만 실행되도록 합니다.



위의 Python 예제에 해당하는 언어가 있습니다.
안전한!
( Anime CS Girls )

좋은 웹페이지 즐겨찾기