[pwnable.kr] fd - 1pt

해킹대회 문제 풀이 연습장소

Moderator: amesianx

Post Reply
gee8195
Posts: 34
Joined: Thu Jul 21, 2016 5:12 pm

[pwnable.kr] fd - 1pt

Post by gee8195 » Wed Sep 21, 2016 3:39 pm

1.png
1.png (14.59 KiB) Viewed 262 times
해당 호스트와 포트로 문제에 접속해보겠습니다.
2.png
2.png (2.89 KiB) Viewed 262 times
3.png
3.png (29.63 KiB) Viewed 262 times
일단 소스를 보니 해당 조건들을 만족시켜서 플래그를 출력하면 될것 같습니다.

atoi ()함수와 read() 함수의 기능에 대해 알아보면, atoi() 함수는 인자로 받은 "문자열"을 "정수"로 변환시켜주는 기능을 합니다.
read()함수는 인자가 3개가 들어가고, 2번째 인자의 값을 읽어오는 기능을 합니다.

read()의 인자
첫번째 인자 : 파일 디스크립터
두번째 인자 : 읽은 데이터의 버퍼
세번째 인자 : 읽은 데이터의 크기

여기서 중요한 것은 첫번째 인자인데, 파일 디스크립터란 0,1,2의 값을 반환하는데 간단하게 적으면...
0 stdin 표준 입력
1 stdout 표준 출력
2 stderr 표준 에러
이와 같이 반환을 합니다. 즉, flag를 보기위해선 두번 째 인자인 buf 에 "LETMEWIN"이라는 문자열을 입력해야하고, 그러기 위해선
파일 디스크립터의 값을 0으로 해서 입력을 받아야 합니다.
그러기 위해선 argv[1]에 0x1234의 값을 정수 형태로 입력한 뒤에 "LETMEWIN"를 입력하면 플래그를 출력할 수 있습니다.
4.png
4.png (6.43 KiB) Viewed 262 times
플래그가 출력 됬습니다~

Post Reply

Who is online

Users browsing this forum: No registered users and 21 guests