커맨드 인젝션이란 웹 요청에 시스템 명령어를 삽입 하여 실행 하는 공격이다.
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...
등이 있다.
또한 |, &, ; 와같은 멀티라인을 지원하는 특수문자는 검사 해주는 것이 중요하다.
'Basic Concepts > Web' 카테고리의 다른 글
생각날때마다 끄적이는 웹 공격 대응방법 (0) | 2020.03.05 |
---|---|
XSS (Cross Site Script) (0) | 2020.02.26 |
meta 태그(meta tag) (0) | 2020.02.25 |
CSRF(Cross-Site Request Forgery) (0) | 2020.02.25 |
브루트 포스(Brute Force) (0) | 2020.02.18 |