Dork's port

FTZ Level14 Write-up(FTZ Level14 풀이) 본문

Hackerschool FTZ Write-up

FTZ Level14 Write-up(FTZ Level14 풀이)

Dork94 2018. 3. 24. 06:40

안녕하세요!!!!


벌써 14번이네요 ㅎㅎㅎ


시작하죠!


이번에는 check의 값을 0xdeadbeef로 초기화하는 문제이네요! 


저번 문제를 자의로 푸셨으면 쉬울 것이라 생각합니다.

우선 스택의 분석을 위해서 tmp폴더에 복사한 후 gdb로 열어서 보게 되면 deadbeef와 비교하는 저부분이 check의 주소라는 것을 추론할 수 있습니다.

그리고 fets을 부르기 전 인자로 전달하는 저 주소는 buf라는 것을 짐작할 수 있죠!


그래서 주소의 차이를 계산해 보면 f0 - c8 = 0x28이라는 것을 알 수 있습니다.


즉, 버퍼에 0x28(40)만큼 채운 후 그 뒤 값을 deadbeef로 채우면 될 것 같군요.

그래서 아래와 같이 코드를 작성 할 수 있습니다.


마찬가지로 프로그램 실행 후 버퍼의 값을 입력 받으므로 아래와 같이 명령을 적으면 되겠죠!


잘 모르신다면 아래 게시글을 참조하세요!


2018/03/24 - [Develop] - Python, Perl Bufferover Flow 인자 전달 명령어 Command Line command

마찬가지로 프롬포트가 이상하긴하지만 명령어를 적으면 정상적으로 수행하는 모습을 보여주네요!


그럼 다음문제로 귀 귀 싱!


Comments