Basic Concepts/Web
커맨드 인젝션(Command Injection)
R4v!dus
2020. 2. 19. 20:15
커맨드 인젝션이란 웹 요청에 시스템 명령어를 삽입 하여 실행 하는 공격이다.
OWASP TOP10에도 속할 정도로 위험한 취약점에 해당한다.
OWASP TOP10
https://www.owasp.org/images/b/bd/OWASP_Top_10-2017-ko.pdf
웹 내부에서 시스템 명령어를 실행하는 경우 입력값을 제대로 검사하지 않는다면 공격자 마음대로 시스템 명령어를 실행 할 수 있게 된다. 이는 웹 개발자가 공격자를 위해 웹쉘을 제공하는 거나 다름이 없다.
정상적으로 동작하는 서버를 대상으로 공격자가 ;cat /etc/passwd를 요청하는데 이는 ping IP;cat /etc/passwd 형식으로 수행이 된다.
대응방법
Command Injection 공격은 취약한 함수를 사용함에 따라 발생한다.
취약한 함수로는
perl : open(), sysopen(), system(), etc....
php : exec(), system(), popen(), include(), eval(), preg_replace(), etc...
등이 있다.
또한 |, &, ; 와같은 멀티라인을 지원하는 특수문자는 검사 해주는 것이 중요하다.