티스토리 뷰
goblin.c
int main()
{
char buffer[16];
gets(buffer);
printf("%s\n", buffer);
}
이것도 goblin과 마찬가지로 buffer 16byte와 SFP 4byte는 nop로 채운뒤 ret에 system함수의 주소를 넣고 4byte의 nop와 /bin/sh의 주소를 넣었다.
이번엔 strcpy()가 아니고 gets()를 입력하였기 때문에, 파이프를 이용하여 공격하였다.
* 파이프?
파이프(|)는 두 가지의 명령어를 이어주는 역할을 한다. 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 보내는 것이다.
'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 |
LEVEL2 (gremlin -> cobolt) : small buffer (0) | 2013.07.19 |
LEVEL1 (gate -> gremlin) : simple bof (0) | 2012.11.23 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday