이것 또한 strcpy의 취약점으로 발생하는 버퍼오버플로우다.
하지만 스택 가드가 존재한다. 변수 i의 값을 건들면 안된다.
즉, 변수 i와 변수 buf의 거리를 계산해서, 변수 i에 리틀엔디안으로 0x1234567을 넣어주면 될듯 하다!
일단 함수 프롤로그 후 변수를 0x418 (1048) 만큼 할당한다.
그리고 buf의 크기는 1024이다.
그리고 main+69 부분에서 ebp-12의 값과 0x1234567을 비교하므로 ebp-12가 변수 i임을 알 수 있다.
그리고 직접 브레이크 포인트를 걸고 동적 디버깅을 해서 변수의 거리를 알아낸다.
-> dummy data를 구하기 위해서!
ret은 1048 + 4라는 것을 생각해보았을때, buf 1024 + dummy 12 + i 4 + dummy 12 + EGGSHELL이 payload 이다.
클리어!
'System Hacking (pwnable) > hackerschool FTZ Write-up' 카테고리의 다른 글
[FTZ] level15 ( write - up ) (0) | 2019.05.28 |
---|---|
[FTZ] level14 ( write - up ) (0) | 2019.05.28 |
[FTZ] level12 ( write - up ) (0) | 2019.05.28 |
[FTZ] level11 ( write - up ) (0) | 2019.05.27 |
[FTZ] level10 ( write - up ) (0) | 2019.05.21 |