Canary 값을 유출하는 문제를 풀다가 기억이 잘 안나서 메모용으로 적어둔다.
Canary값은 보통 fs[:0x28]에 위치해있다. 해당 값을 확인하는 커맨드를 자꾸 까먹어서 메모한다!
x/gx $fs_base+0x28
해당 커맨드로 확인할 수 있다!
p ((struct pthread *)$fs_base)->header.self
p ((struct pthread *)$fs_base)->header.stack_guard
또한 추가로 위의 커맨드를 통해 tcbhaed_t의 구조체에 존재하는 self 변수와 canary 값을 알 수 있다.
주소를 알고 싶으면 앞에 "&"를 붙여주자!
Ubuntu 16.04버전에서는 $fs_base가 먹히지 않는다. fsbase 명령을 통해 확인해주자!
fsbase
끝! bye👋