ssh로 


fd@pwnable.kr port - 2222로 접속을 한 뒤 pw guest를 입력해주면



위와 같은 이쁜 친구를 만나볼 수 있다



목록들을 확인해보니 fd fd.c flag peda~ 가 존재하였고 flag는 실행 시 퍼미션 디나이드가 발생하는 상태이다.



fd.c를 열어봤더니 소스가 잇었다 . 

자 먼저 들어가기전에 중요한 핵심 함수들을 정리해보자 


atoi ( str ) = 문자열을 정수로 변환해줍니다 필요한 헤더는 stdlib.h 입니다.


read (a, b, c) = [ a = 데이터를 전송할 파일 디스크립터 b = 수신 한 데이터를 저장할 버퍼를 가리키는 포인터 c = 수신할 최대 바이트 수)


Strcmp(a , b)  = a 와 b 문자열을 비교합니다 


if 부분에 system("\bin\cat flag")를 호출해주네요 ! 저기 부분을 맞춰줘야지 풀 수 있는 문제라고 예상가능합니다 


헌데 argv[1]부분을 0x1234로 빼버리죠? 그렇다면 read함수에서 buf에 정상적으로 값을 전달 해 줄 수가 없으므로 


0x1234를 십진수로 변환한 4660을 넣어줘서 4660 - 4660 = 0으로 초기화 해줍니다.


그리고 strcmp 부분에서 LETMEWIN과 버퍼에 입력된 문자열이 동일하면 system함수가 열어지네요 


이렇게 답을 얻은것을 확인할 수 있습니다.

'pwnable.kr' 카테고리의 다른 글

random  (0) 2016.08.26
passcode  (0) 2016.08.26
flag  (0) 2016.08.26
bof  (0) 2016.08.26
collsion  (0) 2016.08.26

+ Recent posts