0x0102

[pwnable.kr] fd 본문

Write Up/pwnable.kr

[pwnable.kr] fd

jxx_yxjx 2024. 1. 19. 16:37

Question

 

 

우분투로 문제 포트 접속. passwd는 guest

 

포함된 파일과 권한을 알기 위해 ls -ll 명령어 입력

권한을 확인해보면 현재 우리는 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