[Toddler's Bottle] bof 문제풀이
오늘의 문제는 버퍼 오버플로우(BufferOverFlow) 관련 문제인 것 같다.
wget 명령어를 사용해, http://pwnable.kr/bin/bof와 와 http://pwnable.kr/bin/bof.c 파일을 Seed 우분투에 다운로드 받았다. wget 명령어는 Web Get의 약어로, 리눅스에서 웹 상의 파일을 다운로드 받을 때 사용하는 명령어이다.
기본적인 사용법: wget [옵션] [url]
ls 명령을 통해 파일이 잘 다운로드 됐는지 확인할 수 있다.
bof파일을 실행해보면 permission denied가 뜬다. bof.c 파일을 확인해보자!
cat 명령을 이용해 bof.c 파일의 내용을 확인해보았다.
main 함수를 먼저 확인해보면, func 함수의 인자값으로 0xdeadbeef를 전달해준다.
func 함수를 확인해보면, char형 변수인 overflowme[32]를 gets 함수로 불러온다. if문에서 함수의 인자값인 key값과 0xcafebabe를 비교한 뒤, 같으면 /bin/sh를 실행해준다. sh는 가장 기본적인 쉘로, /bin/sh는 쉘의 절대경로이다.
ls 명령어로 파일목록을 다시 확인해보면, flag 파일이 있는 것을 확인할 수 있다.
cat명령을 이용해 flag를 확인해보면, flag가 나온다!!
flag를 입력해주면 성공~! 이번엔 5 point다 개꿀딱
flag: daddy, I just pwned a buFFer :)