HackerSchool FTZ

hint파일을 보니 attackme의 코드가 나와있습니다.간단하게 분석하고 넘어갑시다. 스택 가드는 오버 플로우를 방지하기 위해서 넣은 것으로 리턴 주소 앞에 있어서 스택 가드의 주소가 바뀌면 오버 플로우가 일어난 것이라고 보면 됩니다.( KILL의 SIG 11이 세그먼트 폴트를 띄움 ) 처음에 1048바이트를 할당하지만 buf는 1024 바이트이기에 24바이트가 남습니다.코드를 살펴보면 메모리의 구조는 | buffer: 1024 byte | dummy: 12 byte | i: 4 byte | dummy: 8 byte | SEP: 4 byte | RET: 4 byte | 이렇게 생겼습니다. export SHELLCODE=`python -c 'print"\x31\xc0\x50\x68\x2f\x2f\x73\..
ls명령어로 디렉토리 안을 살펴봅시다."attackme" 라는 실행파일과 hint파일이 보입니다.cat명령어로 힌트파일의 내용을 확인했습니다. gdb로 attackme의 실행 과정을 확인해보려 하니 권한이 없다 뜨기에 힌트로 주어진 소스코드를 /tmp디렉토리에 복사하여 attackme.c라는 파일을 만들어주었습니다.attackme.c를 attackme라는 실행파일로 만들어줍시다. 만든 attackme실행파일을 디버거로 확인해봅시다. main+3 에서 0x108의 공간을 할당해주는데 0x108은 10진수로 264바이트입니다.그러나 선언해준 배열의 크기는 256바이트이므로 나머지 8바이트는 더미 값 입니다.따라서 이 실행파일의 메모리의 구조는 | buffer: 256 byte | dummy: 8 byte |..
lim.dev
'HackerSchool FTZ' 태그의 글 목록