hint
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
char str[256];
setreuid(3092, 3092);
strcpy(str, argv[1]);
printf(str);
}
풀이
1. 내 실력으로는 fsb, nop, rtl, eggshell 등의 방법이 떠오르는데, eggshell로 풀이한다.
1-1 스택 구조 확인
16진수로 108, 10진수로 264의 공간을 할당하고 있다.
실제 str변수의 크기는 256이므로 나머지 8은 dummy임을 알 수 있다.
따라서, 264의 공간에 sfp(4바이트)를 합하여 268바이트를 쓰레기 값으로 채우고 그 다음에 eggshell 주소를 작성해주면 된다.
1-2 eggshell 실행 (환경변수 EGG)
1-3 getegg 실행 (실제 EGG의 주소 출력)
2. 공격 명령어 작성
'WARGAME > hackerschool ftz,lob' 카테고리의 다른 글
[해커스쿨 ftz] level 13 -> level 14 (0) | 2014.08.22 |
---|---|
[해커스쿨 ftz] level 12 -> level 13 (6) | 2014.08.22 |
[해커스쿨 ftz] level 10 -> level 11 (0) | 2014.08.21 |
[해커스쿨 ftz] level 9 -> level 10 (0) | 2014.08.21 |
[해커스쿨 ftz] level 8 -> level 9 (0) | 2014.08.21 |