System/FTZ

FTZ. 9

dcho 2019. 9. 6. 13:45
SMALL
level9 // apple


bof (buffer overflow)문제이다.

저 조건에 충족하게 입력값을 쌓아주면 된다.

메모리 구조상 buf2, buf 순으로 변수가 쌓이게 된다.

하지만 입력은 buf만 받는다..? 일단 구조는 이렇다.

음 구조상 A*10 , go 해줘서 buf2에 씌워줬는데 안된닷 (별에별 시도를 했지만 안됨)

gdb로 분석하려고 했는데..

ㅠㅠㅠ 슬프군 하지만 그렇다면 다른 방법을 !

소스코드 복사해서 /tmp에 만들고 컴파일후 분석하기로했다.

난 인텔 문법이 좋으니까 설정한후 까보았다.


핵심은 뭐다? 필요한것만 빠르게 후후훅 보는거다.

보니 sub esp, 0x28을 통해 40바이트 만큼 확보를 해준다. 그뒤로 쭉쭉 보니 buf2와 buf를 할당해 주는게 보이는데 

lea eax, [ebp-40]을 통해 buf 

push 0x2 , push 0x804856a, push eax (lea eax, [ebp-24]) 를 통해 strncmp 함수 인자를 받는 것을 보아 buf2인것을 확인했다.

근데 10바이트만큼씩 있었던 변수들이 16바이트, 24바이트 씩 있다. dummy값이 쌓인것으로 추정이 되었다.


buf와 더미를 채우고 go를 해주면 되겠다!



결과는 성공! 다음단계로~

'System > FTZ' 카테고리의 다른 글

FTZ. 11  (0) 2019.09.06
FTZ. 10  (0) 2019.09.06
FTZ. 8  (0) 2019.09.05
FTZ. 7  (0) 2019.09.05
FTZ. 6  (0) 2019.09.05