System Hacking (pwnable)/hackerschool FTZ Write-up
[FTZ] level13 ( write - up )
hellojuntae
2019. 5. 28. 00:32
이것 또한 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 이다.
클리어!