FTZ-level15(대략적인 틀)
------------------------------------------------<핵심>-------------------------------------------
쉬운 문제일 줄 알았는데 아주 2일동안 못풀게한 문제입니다.
이 방법이 왜 틀린지만 하루종일 고민했던것 같습니다. 그러다가 생각난 이유가 그동안 왜
우리가 문제를 풀면서 NOP 썰매 즉, 'python -c 'print "\x90"*100+"\xff\xff\xff\xbf"'` 에
서 왜 앞에 NOP을 100개 넣어 주었나 하는 이유였습니다. 우리가 정의한 환경변수에는 우
리가 입력한 값말고 다른 값도 들어가있습니다. 또한 파일의 이름, 디렉토리의 위치에 따라
주소가 환경변수가 위치하는 주소가 다릅니다(그에 대한 설명이 위의 그림중 <핵심>이라
고 설명된 사진 두장입니다.) 즉 100개를 넣음으로써 대략적인 위치를 찾아 우리가 집어넣
은 데이터를 실행하도록 한 것이 NOP썰매 방법이였습니다.
따라서 이러한 이유로 저 윗방법은 틀린 것 입니다.
따라서 문제를 풀기 위해서는 두가지 크게 두가지 방법이 있는 것 같습니다.
1.변수 buf에 0xdeadbeef를 넣고 buf의 주소를 check 포인터 변수에 넣어주는 것
(이 방법은 ASLR이 적용되있다면 할 수 있을지 없을지 모르겠습니다.)
2./home/level15/attackme에서 0xdeadbeef가 들어있는 환경변수의 정확한 주소를 찾아 그 주소를 넣어 공격하는 방법
아직 못해봤지만 가능하다면 두 가지 모두 포스팅 해보겠습니다.
0 개의 댓글