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() |
대응방안
- 사용자 입력값에 운영체제 명령어를 실행할 수 있는 문자가 포함되어 있는지 적절히 필터링하여 차단한다.
- 웹 애플리케이션 운영 상 운영체제 명령어를 사용해야 한다면 허용 가능한 명령어 리스트(명령어 화이트 리스트)를 선정하여 해당 명령어만 실행할 수 있도록 설정한다.
'Web Hacking > 이론적인 내용' 카테고리의 다른 글
SOAP란? (0) | 2017.12.05 |
---|---|
파일 업로드 취약점이란? (0) | 2017.09.22 |
파일 다운로드 취약점이란? (0) | 2017.09.15 |
CSRF(Cross Site Request Forgery)란? (0) | 2017.09.08 |
XSS란? (2) | 2017.09.01 |