본문 바로가기

Webhacking/개념

[Web] Dreamhack STAGE 7

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