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() 호출