웹 어플리케이션에서 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 |