이번에는 iron_golem을 풀어볼것입니다. 먼저 dark_eyes 프로그램의 소스를 보져 hint를 보면 RET sleding이라고 합니다. RET sleding이란 리턴주소에 RET명령어가 계속 실행하게 해서 ebp의 값을 우리가 원하는 값으로 변조한뒤에 우리가 원하는 함수가 실행되게 하는겁니다. RET sleding 기법으로 ebp 변조를 하게되는 과정은 1. 원래 함수의 leave, RET 실행 (pop 2번 -> esp 4 * 2만큼 상승)2. RET 부분에 RET명령어를 원하는 갯수만큼 씀 3. RET명령은 pop eip, jmp eip로 구성되어있으므로 esp는 RET를 실행할 때마다 4씩 상승4. 우리가 원하는 함수 실행 5. 함수 진입과정에서 push ebp, mov ebp, esp가 ..
이제부터 본격적으로 LOB FC3 풀이에 대해 할것입니다. 먼저 level1의 아이디와 비번은 모두 gate로 동일합니다! 먼저 iron_golem의 소스를 보져 여기서 strcpy 이 부분에서 BOF가 발생하고, 힌트를 보니 fake ebp라 되어있군요 fake ebp는 말 그대로 ebp를 우리가 원하는 값으로 변조 한뒤에 공격을 하는 것입니다. 우리는 여기서 RET에 execl함수 주소를 넣고 execl의 첫번째 인자의 주소 - 8을 한 주소로 ebp를 변조할 것입니다.먼저 ASLR의 적용을 안받는 GOT부분을 보져 주소가 0x8049618인것을 알 수 있습니다. 다음에는 iron_golem 프로그램을 복사한 뒤 그 프로그램을 gdb로 열어보고 저 주소의 값들을 봅시다. 0x0804954c 의 값이 ..