cgy12306
FTZ 15번 level15 본문
ID : level15
PW : guess what
14번이랑 다른점은 포인터를 이용한다는 점이다.
디버깅 해보자.
14번과 유사하다. 하지만 main+32 부분을 보면 eax 주소안의 있는 값과 0xdeadbeef와 비교한다.
이 부분이 제일 헷갈렸다. 나의 이해 방식은 main+32 부분에서 DWORD PTR[eax]를 그냥 eax로 바꾼다면
ebp-16의 위치에 있는 값과 0xdeadbeef와 비교를 하는 것이다. 그러면 ebp-16에 0xdeadbeef를 넣으면 되겠지만 현재의 문제는 DWORD PTR[eax]와 0xdeadbeef를 비교하는 것이다. 그러면 ebp-16의 위치에 0xdeadbeef가 있는 주소값을 넣어주면 해결 된다.
우선 스택구조는 이렇다. 저 ebp-16 자리에 0xdeadbeef가 있는 주소를 넣어주면 된다.
0xdeadbeef를 main에서 찾아보자.
main+32부근에 있다.
0xdeadbeef의 자세한 주소는 0x080484b2이다. 이제 쉘을 획득해보자. 맨 처음 버퍼에 A를 40byte만큼 채워주고 ebp-16위치에 0x80484be를 넣어주면 된다.
비밀번호는 about to cause mass 이다.
'Wargame > FTZ' 카테고리의 다른 글
FTZ 17번 level17 (0) | 2019.07.06 |
---|---|
FTZ 16번 level16 (0) | 2019.07.06 |
FTZ 14번 level14 (0) | 2019.07.06 |
FTZ 13번 level13 (0) | 2019.07.06 |
FTZ 12번 level12 (0) | 2019.07.06 |
Comments