Web Hacking/이론적인 내용
Command Injection이란?
꼴통보안인
2017. 9. 29. 13:32
Command Injection이란 웹 애플리케이션에서 system(), exec()와 같은 시스템 명령어를 실행할 수 있는 함수를 제공하며 사용자 입력값에 필터링이 제대로 이루어지지 않을 경우 공격자가 시스템 명령어를 호출할 수 있는 취약점이다. 시스템 계정 정보 유출, 백도어 설치, 관리자 권한 탈취 등의 공격을 수행한다.
Command Injection에 취약한 함수들
구분 |
취약한 함수 |
Java(Servelt, JSP) |
System.*(특히 System.Runtime) |
Perl |
open(), sysopen(), system(), glob() |
PHP |
exec(), system(), passthru(), popen(), rquire(), include(), eval(), preg_replace() |
대응방안
- 사용자 입력값에 운영체제 명령어를 실행할 수 있는 문자가 포함되어 있는지 적절히 필터링하여 차단한다.
- 웹 애플리케이션 운영 상 운영체제 명령어를 사용해야 한다면 허용 가능한 명령어 리스트(명령어 화이트 리스트)를 선정하여 해당 명령어만 실행할 수 있도록 설정한다.