커맨드 인젝션(Command Injection)
- 사용자가 입력한 값이 그대로 시스템 명령어에 포함되어 실행되는 취약점
- 즉, 프로그램이 사용자 입력을 제대로 검사하지 않아서 악의적인 명령이 시스템에서 실행되는 상황을 말함
[드림핵] Command-Injection-1 을 통한 예시

기존 코드에서 cmd= f'ping -c 3 "{host} " ' 때문에 사용자가 8.8.8.8"; cat flag.py"를 넣으면
ping -c 3 "8.8.8.8"; cat flag.py" 라는 문자열이 cmd에 들어가게 됨
즉, 사용자 입력이 쉘에서 추가 명령으로 해석되기 때문에 민감 파일이 노출될 가능성이 생김
따라서 쉘 해석을 거치지 않도록 명령과 인자를 분리하고 shell=False를 사용하는 것을 권장함
그 밖에도
- 외부 명령 호출을 피하고, 라이브러리로 대체
- 입력을 화이트리스트 방식으로 검증
- 인자 분리
- 최소 권한으로 프로세스 실행 및 모니터링
등의 방어 기법이 있다고 함
'swuforce 심화팀 > 워게임 스터디' 카테고리의 다른 글
| DevTools 주요 기능 정리와 Console 패널 실습 (0) | 2025.11.11 |
|---|---|
| [드림핵] devtools-sources (0) | 2025.11.11 |
| [드림핵] command-injection-1 (0) | 2025.11.04 |
| 파일 업로드 취약점 실습 (1) | 2025.10.28 |
| [드림핵] image-storage (0) | 2025.10.28 |