
5. basic_exploitation_001
·
Wargame
앞서 basic_exploitation_000 문제와 유사한 문제이다. 우선 코드를 보면 main 함수 실행시 버퍼에 128바이트만큼 할당해주고 initialize함수를 실행한 후 gets를 통해 값을 입력 받아서 buf에 저장을 하는데, gets는 입력받는 값의 크기에 제한을 두지 않아 우리가 스택 구조를 이해하면 RET위치에 원하는 값을 넣을 수 있다. 우리는 이번 문제에 read_flag함수를 볼 수 있을것이다. read_flag함수를 실행하면 플레그를 출력해준다. 그렇다면 우리는 RET에 read_flag함수의 주소를 넣어주면 된다. 우선 디버깅을 통해 스택의 구조를 보겠다. 나는 read_flag라는 함수 명을 알고 있으므로, 해당 위치에 브레이크포인트를 걸어서 read_flag의 주소를 알아낼..