티스토리 뷰
<gremlin 소스>
<bof공격을 위한 간단한 스택 구조>
저는 buffer 256byte 공간과 SFP 4byte 총 260 byte공간을 NOP와 쉘 코드로 채운 뒤 return address에 buffer의 시작 주소를 넣어주었습니다.
우선, return address에 넣어주기 위한 buffer의 시작 주소를 찾아야겠죠?
저는 소스를 복사해서 printf("%x\n", buffer);를 추가해준 뒤 새로 컴파일을 했습니다.
A를 260개를 넣어준 이유는 입력한 개수에 따라 주소가 달라지는데 제가 bof공격을 할 때에 쉘코드와 nop로 260byte를 채우기 때문에 똑같은 환경을 만들어 주기 위해 260개를 넣어준 것입니다.
이제 bof 공격을 해볼까요?
\x90은 nop입니다.
nop로 100byte, 25byte의 쉘코드, nop 135byte 총 260byte죠?
그다음 return address에 해당하는 나머지 4byte는 위에서 얻은 buffer의 시작주소를 넣었습니다.
'SYSTEM > bof' 카테고리의 다른 글
LEVEL6 (wolfman -> darkelf) : check length of argv[1] + egghunter + bufferhunter (0) | 2013.07.19 |
---|---|
LEVEL5 (orc -> wolfman) : egghunter + bufferhunter (0) | 2013.07.19 |
LEVEL4 (goblin -> orc) : egghunter (0) | 2013.07.19 |
LEVEL3 (cobolt -> goblin) : small buffer + stdin (0) | 2013.07.19 |
LEVEL2 (gremlin -> cobolt) : small buffer (0) | 2013.07.19 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday