PWN
Cute Canary
Cute Canary
귀여운 스택 카나리가 둥지를 지키고 있습니다. 카나리의 지저귐을 잘 들어보세요.
개념
이 문제는 Stack Canary가 켜진 환경에서의 버퍼 오버플로우입니다. 카나리 값을 그대로 덮어쓰면 프로그램이 바로 종료되므로, 먼저 카나리를 알아낸 뒤 정확히 맞춰 넣어야 합니다.
목표
- 바이너리를 분석해
win()주소와 취약 함수를 확인합니다. - Chirp 메뉴에서 카나리 힌트를 얻습니다.
- Nest 메뉴에서 카나리를 유지한 채 복귀 주소를
win()으로 덮어씁니다.
환경
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: Canary found
NX: NX enabled
PIE: No PIE (0x400000)
문제 파일
challenge.c와 Makefile을 받아 로컬에서 빌드할 수 있습니다. 원격은 인스턴스 시작 후 접속하세요.
make
./challenge
힌트
- 메뉴 1번은 카나리가 듣고 있는 채팅 구간입니다.
- 메뉴 2번은 횃대 버퍼입니다.
checksec/디스어셈블로 카나리·복귀 주소 오프셋을 직접 확인하세요. - x86-64에서는 8바이트 정렬을 맞춰 주세요.