https://dreamhack.io/lecture/roadmaps/1
Web Hacking
웹 해킹을 공부하기 위한 로드맵입니다.
dreamhack.io
[ Web STAGE 7: Command Injection ]
* 각 언어별 시스템 함수
- PHP: system
- Node JS: child_process
- 파이썬: os.system
* Command Injection
- 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점
- 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생
- 시스템 함수는 셸 프로그램에 명령어를 전달하여 실행하는데, 셸 프로그램은 다양한 메타 문자를 지원함
- 아래의 메타문자에서 &&, ;, | 등을 사용하면 여러 개의 명령어를 연속으로 실행시킬 수 있음
1) ` `
- 명령어 치환 / ` ` 안에 있는 명령어를 실행한 결과로 치환
2) $( )
- 명령어 치환 / $( )안에 있는 명령어를 실행한 결과로 치환 / 위와 다르게 중복 사용 가능
3) &&
- 명령어 연속 실행 / 한 줄에 여러 명령어를 사용하고 싶을 때 사용 / 앞 명령어에서 에러가 발생하지 않아야 뒷 명령어 실행
4) | |
- 명령어 연속 실행 / 한 줄에 여러 명령어를 사용하고 싶을 때 사용 / 앞 명령어에서 에러가 발생해야 뒷 명령어 실행
5) ;
- 명령어 구분자 / 한 줄에 여러 명령어를 사용하고 싶을 때 사용 / 앞 명령어의 에러 유무와 관계 x
6) |
- 파이프 / 앞 명령어의 결과가 뒷 명령어의 입력으로 들어감
## 시스템 함수를 사용하여 이용자의 입력을 소프트웨어의 인자로 전달하는 예시 ##
ex1) 파이썬 웹 애플리케이션에서 입력한 임의 IP에 ping을 전송하고 싶을 때
: os.system(“ping [user-input]”)
ex2) 임의 파일을 읽고 싶을 때
: os.system(“cat [user-input]”)
'Webhacking > 개념' 카테고리의 다른 글
[Web] Dreamhack STAGE 8 (0) | 2022.08.27 |
---|---|
[Web] Dreamhack STAGE 6 (0) | 2022.08.27 |
[Web] Dreamhack STAGE 5 (0) | 2022.08.26 |
[Web] Dreamhack STAGE 4 (0) | 2022.08.25 |
[Web] Dreamhack STAGE 1 ~ 3 (0) | 2022.08.15 |