ftz writeup

attackme의 코드를 훑어봅시다.각가 crap 4바이트 check 4바이트 buf 20바이트를 할당해주고 fgets함수로 buf에 입력 받은 값을 집어넣습니다.이번 문제는 if문을 실행하는 부분의 메모리주소만 찾으면 되겠습니다. 56바이트 만큼의 공간을 할당하고 값을 받아옵니다. ebp-16 에서 if문의 조건절을 검사하므로 굳이 메모리의 구조를 알지 못하더라도 쓰레기값을 40바이트를 주고 0xdeadbeef를 넣으면 shell을 얻을 수 있다는 것을 알아냈습니다. (python -c 'print "A"*40 + "\xef\xbe\xad\xde"';cat)|./attackme 끝!
ls명령어를 통해 디렉터리 안을 확인하고 hint파일의 내용을 cat명령어로 봅니다.key_t = 7530 -> 공유 메모리를 구별하는 식별 번호가 7430임을 확인. ------------ 공유 메모리란?공유 메모리(Shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리입니다..그림으로 그려서 나타내자면, 원래 프로세스는 이렇게 각각의 메모리를 가지고있는 상태이지만 만약 프로세스 b가 공유 메모리를 만든다면 이렇게 접근 권한이 있는 모든 프로세스에서 공유 메모리로 접근이 가능합니다. ------------ 문제에서 공유 메모리를 언급하였고 key값도 주어졌으니 공유 메모리에 접근할 실행파일을 만들어줍시다. *shmget() 함수* int shmget(key_t key..
힌트 파일을 cat명령어로 확인해봅시다./usr/bin/level5를 실행시키면 /tmp디렉토리에 level5.tmp라는 파일이 생기는 듯 합니다. /usr/bin/level5 파일을 확인했습니다.실행해봅시다. 실행했지만 /tmp 디렉토리에 파일이 생기지 않았습니다.무언가 level5.tmp 파일을 지우는 듯 합니다. 그러므로 vi편집기로 level5.tmp 파일을 만들어줍니다.내용은 아무거나 채워 넣었습니다. 다시 /usr/bin/level5 를 실행시켜주고 level5.tmp를 보면 비밀번호가 나와있는 것을 확인하실 수 있습니다.
ls로 디렉토리를 확인해보니 [hint]라는 파일이 존재합니다. cat명령어로 hint파일을 확인해보니 "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데 ... "라고 뜹니다.Vi 에디터를 얘기하는 듯 합니다. level 1과 마찬가지로 setuid가 걸린 level3권한의 파일을 찾아줍니다. editor는 디렉토리가 아닌 듯 하네요. /usr/bin 디렉토리로 이동해서 editor파일이 있는지 확인합니다. editor을 실행시켜줍니다. Vim 편집기가 뜨네요.명령어 모드로 전환하기 위해 [esc] 를 눌러줍니다. vim 편집기는 외부명령도 편집기 내에서 할 수 있게 하는 명령어가 존재합니다. :! 를 친 후 bash를 입력해주면 외부명령으로 인식되며 level3의 권한을 얻게 됩니다. level..
lim.dev
'ftz writeup' 태그의 글 목록