보안
Chapter 08. Command 인젝션 공격
qbang
2019. 2. 28. 23:45
Chapter 08. Command 인젝션 공격
커맨드 인젝션 공격 개요
- 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하는 것
ping x.x.x.x; cat /etc/passwd |
- 세미콜론을 이용한 추가 명령 실행, etc/passwd 파일은 리눅스 사용자 목록이 들어있는 파일
커맨드 인젝션 공격 실습
- 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당
|
- 2의 경우 시스템 명령어를 내리는 함수임, target 변수는 1의 ip임(‘-c’ 옵션은 핑 몇 번 떄릴지 설정하는 것임)
- ping -c 4 127.0.0.1; ls를 실행하면 디렉토리 내용이 출력됨
- ping 명령어 결과가 표시되는 게 아니라 디렉토리가 출력됨
; cat /etc/passwd |
- 리눅스를 대상으로 파라미터에 ; 등의 특수문자와 함께 시스템 명령어를 입력하여 커맨드 인젝션을 시도하고 윈도우의 경우 &&를 사용
커맨드 인젝션 공격 대응
- 소스코드에서 exec()나 system()과 같은 직접적으로 명령어를 실행하는 함수 지양 -> 라이브러리 이용
system(“mkdir $dir_name”)이 아닌 mkdir($dir_name) |
해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.