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
블로그 이미지

꼴통보안인

,