CANARY
-
Mary_MortonCTF/XCTF 2021. 2. 11. 00:33
Disassembly 디스어셈블리 void main() { init(); puts("Welcome to the battle ! "); puts("[Great Fairy] level pwned "); puts("Select your weapon "); while( true ) { menu(); scanf("%d", &num); if (num == 1) { bof(); } else if (num == 2) { fsb(); } else if (num == 3) { break; } else { puts("Wrong!"); } } puts("Bye "); exit(0); } main에서는 bof와 fsb를 호출할 수 있다. void fsb(void) { undefined8 str; // rbp - 0x90 mem..
-
Memory Mitigation 메모리 보호기법CTF/KNOWLEDGE 2021. 1. 19. 02:28
PRELIMINARY 서론 시스템해킹을 공부하다 보면 다양한 공격 방법과 이를 방어하기 위한 보호 기법의 변천사에 대해 알 수 있다. 각각의 공격 방법이 성립하는 조건과 원리에 대해 이해하는 것은 매우 중요하며, 이를 알기 위해서는 보호 기법에 대한 이해 또한 필수적이다. pwnable을 하면서 만나게 되는 다양한 보호 기법들과 이에 대한 우회 방법에 대해 정리해보자. 보호 기법이 방지하는 공격 기법들은 붉은색, 우회 방법은 초록색으로 표기하였다. ASLR(Address Space Layout Randomization) ASLR 보호기법은 공유 라이브러리, 스택 및 힙이 매핑되는 메모리 영역의 주소를 임의로 배치한다. 그 이유는 공격자가 코드를 작성할 때 payload가 어느 위치에 삽입되야 하는지를 미..