ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pwnable.kr #4 cmd1
    Wargame Site/Pwnable.kr 2019. 4. 9. 15:59

     

    다음으로 접근한 문제는 "CMD1" 이었다.

     

    우선 자아정체성부터 찾자

    'ls -l' 를 통해 하위목록을 확인해보니 전형적인 Pwnable 문제의 구조같았다.

    other 의 권한으로 접근할 수 있는 것은 cmd1.c 의 소스보기와 cmd1 의 실행권한이고,

    cmd1 에 group 에 setGUID 가 설정되어있는 것을 토대로 flag 의 파일을 읽어오는 문제이다.

     

     

    소스안에서 putenv 의 PATH 를 통해 환경변수를 설정한 것을 알 수 있었다.

    하지만, 딱봐도 저런 디렉터리는 없을 것 같다.

     

     

    역시나 없다. 그렇다면 어떻게 접근해야할까?

    우선 우리가 'cat', 'ls' 라는 명령어를 입력했을 때 일어나는 일을 이해해볼 필요가 있다.

    명령어의 위치를 살펴보기 위해 'which ls', 'which cat' 을 입력하면

    각각의 명령어의 본래 위치가 나오는 것을 볼 수 있다.

    둘 다 /bin 하위에 있는 것을 알 수 있다. 하지만, 컴퓨터 내에서 어떻게 cat 이라는 단어를 /bin/cat 이라고 탐지할까?

     

     

    export 를 통해서 환경변수를 살펴보면 금새 해답을 찾을 수 있다.

     

     

    위의 사진에서 bin 이라는 PATH 환경변수가 보인다.

    바로 이 PATH 라는 환경변수에서 탐색을 하기 때문에 명령어로 인식할 수 있는 것이다.

     

     

    하지만, 이 문제에서는 환경변수를 아예 초기화하고 존재하지 않는 곳으로 설정해놓았기 때문에 /bin 을 명시해주어야 한다.

    동시에 flag, sh, tmp 라는 글자가 필터링 되어있어 flag 입력을 우회해야 해결된다.

    flag 는 *(0글자 이상 대체) 또는 ?(1글자 대체) 로 우회할 수 있다!!

     

     

    심볼릭 링크를 이용해서 sh 뺏어오기

    'Wargame Site > Pwnable.kr' 카테고리의 다른 글

    Pwnable.kr #5 cmd2  (0) 2019.04.11
    Pwnable.kr #3 bof  (0) 2019.03.08
    Pwnable.kr #2 collision  (0) 2019.02.24
    Pwnable.kr #1 fd  (0) 2019.02.24

    댓글

Designed by Tistory.