0x0102
[pwnable.kr] fd 본문
우분투로 문제 포트 접속. passwd는 guest
권한을 확인해보면 현재 우리는 fd 그룹에 속해져있기 때문에
fd 파일은 읽기와 실행, fd.c 파일은 읽기, flag 파일에는 아무권한이 없는 것을 확인할 수 있다.
단서를 찾기 위해 cat 명령어로 fd.c 파일을 먼저 읽어보자.
이 때 atoi 함수가 눈에 띈다.
atio 함수는 문자열을 정수로 변환하는 함수이다.
함수를 읽어보면 인자값이 0x1234와 뺄셈 계산이 이루어진 후 fd에 할당되고 fd에 0이 들어가면 사용자가 입력하는 값을 buf 안에 저장하게 됨을 알 수 있다.
이후 strcmp로 문자열을 비교하는데 같다면 0 다르면 1을 반환한다.
결론적으로 0x1234(십진수로 변환 필요)를 인자값으로 설정하여 fd에 0을 넣어주고 LETMEWIN 과 buf를 비교하여 같다면 조건을 달성하고 flag에 접근할 수 있는 것이다.
어떻게 풀지 알았다면 다시 문제를 풀어보자.
16진수인 0x1234를 10진수로 변환해주면 4660 이라는 값이 나온다.
이어서 fd에 4660 값을 인자로 주면 입력창이 나온다.
입력창에 LETMEWIN 을 입력한다.
그럼 다음과 같이 flag가 출력된다.
flag :
mommy! I think I know what a file descriptor is!!
'Write Up > pwnable.kr' 카테고리의 다른 글
[pwnable.kr] collision (1) | 2024.01.19 |
---|