프로그래밍 언어나 애플리케이션이 내부적으로 운영체제의 커맨드(명령어)를 실행하는 기능
예
- 파일 생성/삭제 (rm, mkdir)
- 시스템 정보 출력 (uname, ipconfig)
- 외부 프로그램 실행 (ping, ls, dir)
예시 (Java)
String input = request.getParameter("ip");
Runtime.getRuntime().exec("ping " + input);
→ 공격자 입력
127.0.0.1 && rm -rf /
→ 실제 실행
ping 127.0.0.1 && rm -rf /
→ 서버 전체 삭제 가능
항목
- 언어 : Java (Runtime.exec()), PHP (shell_exec()) 등
- 보안 : 위험 명령어 인젝션 → 시스템 탈취, 삭제, 정보 유출
- 방어법 : 입력값 검증, 쉘 명령 최소화, 명령어 인자 분리, 정적 분석 도구 활용