보안

Chapter 08. Command 인젝션 공격

qbang 2019. 2. 28. 23:45

 

Chapter 08. Command 인젝션 공격

 

커맨드 인젝션 공격 개요

 

- 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하는 것

 

ping x.x.x.x; cat /etc/passwd

 

- 세미콜론을 이용한 추가 명령 실행, etc/passwd 파일은 리눅스 사용자 목록이 들어있는 파일

 

 

 

커맨드 인젝션 공격 실습

 

- 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당

 




 

- 2의 경우 시스템 명령어를 내리는 함수임, target 변수는 1ip(‘-c’ 옵션은 핑 몇 번 떄릴지 설정하는 것임)

 

 

 

- ping -c 4 127.0.0.1; ls를 실행하면 디렉토리 내용이 출력됨

 

 

 

- ping 명령어 결과가 표시되는 게 아니라 디렉토리가 출력됨

 

; cat /etc/passwd

 

 

 

- 리눅스를 대상으로 파라미터에 ; 등의 특수문자와 함께 시스템 명령어를 입력하여 커맨드 인젝션을 시도하고 윈도우의 경우 &&를 사용

 

 

 

커맨드 인젝션 공격 대응

 

- 소스코드에서 exec() system()과 같은 직접적으로 명령어를 실행하는 함수 지양 -> 라이브러리 이용

system(“mkdir $dir_name”)이 아닌 mkdir($dir_name)

 

 

 

해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.