연구실:System

[DreamHack워게임] ssp_001

작성자 정보

  • za9uar 작성
  • 작성일

컨텐츠 정보

본문

 

Stack Smash Protection(SSP)

- Canary를 이용한 Stack BufferOverflow 보호 기법

- 연관 함수는 __stack_chk_fail

  • - gcc에 자동 활성화되며, 끄는 옵션은 -fno-stack-protector
  •   ex) gcc -fno-stack-protector -o test test.c

 

Canary 로직

- 랜덤으로 생성된 카나리를 Overflow 유/무의 잣대로 사용

- 스레드별 전역 변수로 사용되는 TLS (Thread Local Storage)에 저장

- _dl_allocate_tls_storage 함수에서 __libc_memalign 함수를 호출해서 할당

 

Bypassing SSP

- Canary Leak을 통해 Canary 값을 미리 알아놓고 SSP 로직을 우회한다

 

Canary Leak

- buf 배열부터 스택 카나리 + 1까지 Offset을 구한다

 

# checksec

- Canary가 존재함

062e9dd41528e1b1dec7546c4fda8e47d64ce0313rg4.png

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

최근글


새댓글


  • 댓글이 없습니다.