본문으로 바로가기

 이것 또한 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