티스토리 뷰





[pwnable.kr] Toddler's Bottle - bof(5 pt) write-up



폰케알 버퍼 오버 플로우 문제입니다.



gets함수에서 오버플로우가 가능하겠군요.


메모리 구조는

func()의 전달인자 | sfp | ret | key | 더미 |overflowme[32]


이 될 듯 합니다.


key의 값이 0xcafebabe 이면 자동으로 쉘을 띄어 줍니다.


버퍼 오버 플로우로 key의 값을 변조 해주면 되겠습니다.


먼저 gdb로 바이너리 파일을 분석하겠습니다.



ebp-02c가 overflowme 버퍼의 시작주소가 되겠군요.


그리고 ebp+8 과 0xcafebabe를 비교합니다.


ebp-02c 에서 ebp+8 의 거리는



수학시간에 배웠 듯이 뒤에서 앞을 빼면 거리가 나옵니다. 52이군요.


그럼 52만큼 값을 채워주고 0xcafebabe를 맞춰주면 될 것 같습니다.



쉘이 따졌습니다.


ls 명령어가 먹히군요.


flag파일을 봅시다.



플래그가 나옵니다.



Comments