hint
main ()
{
char buf[20];
gets(buf);
printf("%s\n", buf);
}
풀이
1. 이전의 문제들에서 setreuid(,)가 빠져있어서 기존의 eggshell에서 사용했던 쉘코드로는 자기 쉘 밖에 얻을 수 없으므로
쉘코드에 setreuid()를 추가해 준다.
(쉘코드 출처 : http://hkpco.kr/paper/universal%20setreuid%20shellcode.txt )
2. 에그쉘을 실행하여 쉘코드를 환경변수에 올리고 get 이라는 파일을 만들어 실제 환경변수의 주소를 출력한다.
3. attackme를 디스어셈블 해보면 buf[20]에 40바이트를 할당하고 있으므로 스택에서 ret의 위치는 45부터이다.
따라서, 다음과 같이 입력한다.
'WARGAME > hackerschool ftz,lob' 카테고리의 다른 글
[해커스쿨 ftz] 비밀번호 (0) | 2014.08.29 |
---|---|
[해커스쿨 ftz] level 20 -> Clear (0) | 2014.08.29 |
[해커스쿨 ftz] level 18 -> level 19 (0) | 2014.08.23 |
[해커스쿨 ftz] level 17 -> level 18 (0) | 2014.08.23 |
[해커스쿨 ftz] level 16 -> level 17 (0) | 2014.08.22 |