티스토리 뷰

포너블/포너블 공부

SSP(canary)

삼전동해커 2021. 1. 18. 15:50

SSP(Stack Smashing Protector)는 카나리를 이용해 스택이 망가졌는지 확인한다.

카나리는 스택 버퍼와 스택 프레임 포인터 사이에 삽입되는 랜덤 값이다.


이 카나리는 main함수가 호출되기 전에 생성된 값을 스레드마다 전역 변수로 사용되는 TLS(Thread Local Storage)에 저장되는데, 모든 스레드가 하나의 카나리 값을 사용하기 위해서이다.


security_init()함수는 _dl_setup_stack_chk_guard()함수에서 반환한 랜덤 카나리 값을 설정한다.

Thread_SET_STACK_GUARD는 TLS영역의 header.stack_guard에 카나리 값을 삽입한다.

그냥 뭐 이런게 있다고 생각한다.


ssp 예제는 드림핵 문제를 풀어보자.

https://dreamhack.io/wargame/challenges/32/



'포너블 > 포너블 공부' 카테고리의 다른 글

[dreamhack]ssp_001  (0) 2021.01.25
[dreamhack] SSP_000  (0) 2021.01.22
RTL에 대하여  (0) 2021.01.11
ROP에 대해  (0) 2021.01.02
pwntools 이용하기  (0) 2020.12.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함