더북(TheBook)

2단계

각 단계를 마치면 새로운 계정의 패스워드를 알 수 있다. 방금 획득한 패스워드로 narnia1 계정을 사용해 2단계 과제를 해결하자.

2단계 로그인

# ssh narnia1@narnia.labs.overthewire.org

narnia1@narnia.labs.overthewire.org's password: [narnia1 패스워드]

$ cd /narnia/

$ cat narnia1.c

#include <stdio.h>

int main(){
  int (*ret)();

  if(getenv("EGG") == NULL){
      printf("Give me something to execute at the env-variable EGG\n");
      exit(1);
  }

  printf("Trying to execute EGG!\n");
  ret = getenv("EGG");
  ret();

  return 0;
}

▲ 그림 1-7 Narnia 1 - 코드

 

이 C 코드에서 주요 내용을 살펴보자.

int (*ret)(); : ret에 할당될 값을 가져오는 포인터

getenv : EGG 환경 변수를 받아 ret 변수에 저장

ret() 호출

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.