공격기법/Web
Command Injection
부산형
2020. 5. 15. 00:02
웹 어플리케이션에서 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
|
명령어의 결과가 뒷 명령어의 입력으로 들어감