본문 바로가기
포너블(pwnable)/CTF(pwnable.kr)

[Toddler's Bottle] bof 문제풀이

by LIZ0904 2021. 3. 23.
반응형

문제

오늘의 문제는 버퍼 오버플로우(BufferOverFlow) 관련 문제인 것 같다.

 

 

wget

wget 명령어를 사용해, http://pwnable.kr/bin/bof와http://pwnable.kr/bin/bof.c 파일을 Seed 우분투에 다운로드 받았다. wget 명령어는 Web Get의 약어로, 리눅스에서 웹 상의 파일을 다운로드 받을 때 사용하는 명령어이다.

기본적인 사용법: wget [옵션] [url]

 

 

ls

ls 명령을 통해 파일이 잘 다운로드 됐는지 확인할 수 있다.

 

 

bof 실행

bof파일을 실행해보면 permission denied가 뜬다. bof.c 파일을 확인해보자!

 

 

bof.c

cat 명령을 이용해 bof.c 파일의 내용을 확인해보았다.

 

main 함수

main 함수를 먼저 확인해보면, func 함수의 인자값으로 0xdeadbeef를 전달해준다.

 

 

func 함수

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 :)

반응형

댓글