포너블이 처음이라면, 1년전의 내가 이 글을 봤을때 갈피가 잡히게끔 주저리주저리 해보겠다. CTF에서 포너블 문제는, 결국 서버 쉘을 따내는 것이다. 쉘을 따내는데 쓰이는 기법에 따라 풀이가 달라진다. 기본적으로 쉘을 따려면, system("/bin/sh"); 을 실행해야한다.(exec 등등) 이 구문을 실행하기 위해 수십가지의 방법들이 있고, 그 방법들을 막는 보호기법이 걸려있고, 그 기법을 우회하는 공격이 나오고... 이것들을 많이 아느냐 모르느냐가 실력의 지표라고 생각한다. Stack Frame 아주 기초로 가보자면, 어떤 함수가 끝을 내릴때, 다시 돌아갈 주소가 있어야 돌아갈 수 있다. 중학교때 비유해서 공부했던 기억을 되살려보면, 장보러 가기 위해 메모장에 구매 목록을 써놨는데, 화장실 갔다온 ..