Description
Category: Pwnable
Source: pwnable.kr
Points: 10
Author: Jisoon Park(js00n.park)
Description:
Mommy! what is a file descriptor in Linux?
Write-up
주어진 fd.c 파일을 살펴보면, 15번째 라인에 친절하게 flag 파일의 내용을 보여주는 부분이 있다.
프로그램을 살펴보면 어디에도 fopen() 등을 통해 file descriptor를 얻어오는 부분이 없으므로 기본으로 주어지는 standard file descriptor를 사용해야 함을 유추할 수 있다.
file descriptor가 read() 함수에 사용되므로 사용자의 입력을 받는 stdin을 사용하면 되며, stdin은 0번 descriptor를 가지므로 0x1234에 해당하는 4660을 호출 인자로 주면 된다.
read() 함수를 통해 읽어들인 문자열이 "LETMEWIN"과 같은지 비교하기 때문에, 아래와 같은 방법으로 flag 값을 확인할 수 있다.
Flag : mommy! I think I know what a file descriptor is!!