본문으로 건너뛰기

CTF에서 checksec로 바이너리 방어기법 빠르게 파악하기

리버스/포너블 문제 풀 때 첫 30초에 할 일은 checksec로 방어 옵션을 확인하는 겁니다. NX, PIE, Canary가 켜져 있느냐에 따라 익스플로잇 전략이 완전히 달라져요.

핵심 옵션

  • NX: 스택 실행 불가 → 셸코드 대신 ROP/ret2libc
  • Canary: 스택 오버플로 감시 → info leak 필요
  • PIE: ASLR 영향 큼 → 베이스 주소 leak 필수
  • RELRO: GOT 쓰기 제한 → GOT overwrite 전략 차단

빠른 루틴

  1. checksec --file ./chall
  2. strings, readelf -s로 libc 버전/함수 힌트 확인
  3. leak 가능 포인트(printf, puts, write) 먼저 탐색

한 줄 정리

방어기법을 먼저 보면 “지금 필요한 건 leak인지, ROP 체인인지”가 바로 보입니다. CTF든 실제 취약점 분석이든, checksec은 가장 가성비 좋은 첫 스캔이에요.