커맨드인젝션 공격
웹을 통해 시스템명령어(커맨드)를 실행하는 공격
웹 내부에서 시스템 명령어를 실행하는 경우,
입력값을 제대로 검사하지 않으면, 해커 마음대로 시스템 명령어를 실행
리눅스에서는 ;를 붙히면 둘다 실행함
ping; cat/etc/passwd 이런식으로 보내면 핑과 passwd 정보가 출력된다
ping -c 4 127.0.0.1; ls
하면 핑 출력 후 ls결과인 디렉토리들이 출력된다
ping -c 4; ls 도 가능하다
;cat /etc/passwd 로 정보를 얻을 수 있었고
;id 로 나의 권한 또한 알 수 있었다
medium단계
&& 는 윈도우에서 리눅스의 ;과 같은 기능을 하는 것임
이를 대체할 것들이 있다
바로 & 과 | 이다
|는 앞 명령의 결과를 뒤 명령으로 넘겨줄 때 사용하는 특수문자이다
&는 백그라운드로 명령을 실행할 때 사용한다
ping명령을 백그라운드에서 실행되게 만들고 뒤에 id명령어는 그대로 실행된다
커맨드인젝션 공격대응
사용자 입력값이 의도에 맞는지 검사하는 것이 가장 좋은 방법
ip로 받은 문자를 .으로 구분한다
구분된 값들이 각각 숫자인지 확인해주면 된다