개인공부/pwnable

[pwnable]pwnable.kr 1번

5ddish 2018. 8. 24. 00:36

포너블쩜케이알 1번 문제임 


로그인하면 저렇게 뜸 


터미널로 접속 ㄱㄱ (윈도우 쓰는사람은 putty로 접속,, 다른거 뭐 또 있었는데 뭐였찌 )



접속해서 파일들 보면 fd 랑 fd.c fd.c 랑 flag 이씀 ! 



fd.c 파일을 열어보면 본격적인 문제가 나옴 


코드 내용을 보면 



fd 에 입력값을 받아 atoi 하고 -0x1234(4660) 를 해주고 read 를 함


여기서 봐야할건 read 함수는 인수로 


int fd (파일디스크립터) void * buf (파일을 읽어들일 버퍼) size_t nbytes(버퍼의 크기)  를 가짐

 

//파일 디스크립터란 윈도우의서 HANDLE 처럼 파일에 접근하기 위한 값으로 이해했고 


조금더 사전적 의미로 정의하자면 시스템이 할당하여 준 파일이나 소켓을 대표하는 정수 라고 함 ㅋㅋㅋ 


값은 항상 정해져 있고


0은 표준입력 1은 표준 출력 2는 표준 에러 출력임


음 ....... 그래서 아래 흐름 쭉 보면 if 문을 실행시켜야 플래그값을 으니까 fd 는 0이 되어야 할 거 같고 그래서 표준 입력으로 


LETMEWIN 을 쳐주면 ! strcmp 해서 1이 될테니까 if 문이 실행될고임