본문 바로가기

wargame/ftz

FTZ level14





 FTZ (Free Training Zone) level14





1. 환경 : window10    

2. VM, Red Hat Linux 9.0, putty




id : level14

pw : what that nigga want?

 

 1.     Cat hint 를 통해 힌트를 확인합니다.




 Int형 crap 변수 하나 . intcheck변수 하나 그다음 char형 buf[20]의 순  서로 Stack에 쌓인다

 fget함수를 통해 buf를 45개의 갯수까지 입력 받는다

 Check 변수안의 값이 0xdeadbeef

 같으면 level15의 쉘코드를 실행시킵니다.



2.     gdb를 통해 stack 의 구조를 확인한다.

If 로 비교할때를 gdb로 확인해보면 ebp에서 -16떨어진 곳과

 0xdeadbeef를 비교한다.

즉 check 스텍의 위치는 ebp -16 위 이다. (스텍의 총 크기 56)

 




3.     check의 값을 원하는 값(deadbeef)로 스텍을 덮어씌워줍니다.

계산 스텍의 총크기 56 [ebp -56] check의 위치 [ebp-16]위 그러므로

 56-16=40 

40에 해당하는 버퍼 크기에 아무 값이나 넣고 check 변수의 위치에 deadbeef를 입력하여 줍니다 .(deadbeef를 넣어줄 때 글자의 순서는 스텍이 쌓이는 원리를 생각하여 넣어주면 됩니다.)







'wargame > ftz' 카테고리의 다른 글

FTZ level16  (0) 2016.07.12
FTZ level15  (0) 2016.07.12
FTZ level14  (0) 2016.07.12
buffer over flow 필독 자료  (0) 2016.07.12
FTZ level13  (0) 2016.07.12
FTZ level12  (0) 2016.07.12