Command Injection이란?
Injection의 종류 중 하나로, 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점이다.
⭐️
인젝션(Injection)이란 ?
악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법을 말한다.
⭐️
Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생한다.
시스템 함수는 셀 프로그램에 명령어를 전달하여 실행하는데, 셀 프로그램은 다양한 메타 문자를 지원한다. 그래서 공격자는 메타 문자를 통해 임의 명령어를 실행하여 셸을 획득할 수 있습니다.
메타문자
메타문자 | 설명 |
; | 명령어 구분자 한 줄에 여러 명령어를 사용하고 싶을 때 사용합니다. ;은 단순히 명령어를 구분하기 위해 사용하며, 앞 명령어의 에러 유무와 관계 없이 뒷 명령어를 실행합니다. |
ㅣ | 파이프 앞 명령어의 결과가 뒷 명령어의 입력으로 들어갑니다. |
&& | 명령어 연속 실행 한 줄에 여러 명령어를 사용하고 싶을 때 사용합니다. 앞 명령어에서 에러가 발생하지 않아야 뒷 명령어를 실행합니다. (Logical And) |
출처
https://learn.dreamhack.io/187
댓글