티스토리 뷰
3탄의 코드를 살펴보도록 하자.
gets로 직접 입력을 받는다. 하지만 문자길이에 대해 체크하지 않기때문에 여기서 버퍼 오버프롤우가 일어날 수 있게된다.
변수의 사이즈를 고려하여 직접 쉘코드를 덮어씌우는건 힘들것으로 추측되어 환경변수에 쉘코드를 저장하고 RET의 값을 쉘코드의 주소로 덮어씌우는 것을 목표로 한다.
스택의 사이즈가 16인 것을 보면 더미가 존재하지 않는 것을 알 수 있다.
따라서 buf[16]+SFP[4]+RET 로 이루어진 것을 추측할 수 있다.
환경변수에 등록한 쉘코드에 대한 주소를 확인해보자.
0xbffffee7인 것을 확인했으므로 RET의 위치에 해당 값을 덮어씌워주면 된다.
공격에 성공하여 다음단계로 넘어갈 수 있게되었다.
'[Hackerschool] The Lord Of The BOF' 카테고리의 다른 글
BOF원정대 - 6탄(wolfman -> darkelf) (1) | 2017.11.26 |
---|---|
BOF원정대 - 5탄(orc -> wolfman) (0) | 2017.11.26 |
BOF원정대 - 4탄(goblin -> orc) (1) | 2017.11.18 |
BOF원정대 - 2탄(gremlin -> cobolt) (0) | 2017.11.18 |
BOF원정대 - 1탄(gate -> gremlin) (0) | 2017.11.18 |
댓글