level 16
2020. 9. 1. 23:28
딱 봐도 문제가 printit의 주소를 call 하는 부분을 shell의 주소를 call 하는 부분으로 바꿔라~ 하는 것 같네요.
한 번 찾아봅시다.
수상한 주소가 보이네요.
0x8048500을 저장하고 call까지? 에이 이건 딱봐도 printit 주소겠죠?
그러면 shell의 주소는 뭘까요
0x80484d0 이라네요.
그러면, 주소를 담는 부분의 위치는 어디일까요?
아, $ebp-0x10이네요.
아래를 보면 fgets함수로 입력된 값이 $ebp-0x38부터 저장됩니다.
둘의 공백은 40, 답이 나왔죠?
buf(20) + bufdummy(20) + shell() address(4)
쉘을 성공적으로 획득하였습니다.