본문 바로가기

공격기법/Web

Command Injection

웹 어플리케이션에서 OS Command를 사용하기 위해 

PHP(system), Node JS(child_process), Python(os.system)과 같이

OS Command를 실행하는 함수가 존재

 

웹 어플리케이션에서 OS Command를 사용하는 이유는

이미 기능을 구현한 OS 실행 파일이 존재할 때

코드 상에서 다시 구현하지 않고 OS Command로 실행하면 더 편리하기 때문

 

OS Command는 내부적으로 쉘을 이용해 실행하는데,

쉘에는 한 줄에 여러 명령어를 실행하는 등의

쉘 사용자 편의성을 위해 제공하는 특수 문자들이 존재

 

` `(백 쿼터)

명령어 치환

백쿼터 사이의 명령을 실행한 결과로 치환

ex) echo `echo hi` -> hi

 

$( )

명령어 치환

ex) echo $(echo hi) -> hi

 

&&

명령어 연속 실행

앞 명령어에서 에러가 발생하지 않아야 뒷 명령어를 실행

ex) echo hello && echo world -> hello world

 

||

앞 명령어에서 에러가 발생해야 뒷 명령어를 실행

ex) cat / || echo hi -> cat: /: Is a directory  hi

 

;

;은 단순히 명령어를 구분하기 위해 사용하며,

앞 명령어의 에러 유무와 관계 없이 뒷 명령어를 실행

ex) echo hello; echo world -> hello world

 

|
 명령어의 결과가 뒷 명령어의 입력으로 들어감

 

'공격기법 > Web' 카테고리의 다른 글

파일 업로드/다운로드 취약점  (0) 2020.05.18
SSRF(Server Side Request Forgery)공격  (0) 2020.03.10
XSS와 CSRF의 차이  (0) 2020.03.08
브루트 포스 공격  (0) 2020.01.28
CSRF(Cross Site Request Forgery)  (0) 2019.11.15