본문 바로가기

IO SmashTheStack3

SmashTheStack : level5@io.smashthestack 문제풀이 이번 문제는 버퍼 오버플로우 문제이다. level5@io:/levels$ cd /levels level5@io:/levels$ ./level05 level5@io:/levels$ cat level05.c #include #include int main(int argc, char **argv) { char buf[128]; // 128 바이트 변수 선언 if(argc < 2) return 1; // argc(인자의 개수)가 2 보다 적으면 프로그램 종료 strcpy(buf, argv[1]); // argv[1] 을 buf 로 복사 - 버퍼 오버플로우 취약점 printf("%s\n", buf); // argv[1] 이 복사된 buf 내용 출력 return 0; } STRCPY 함수에서 문자열 복사할때 제한값.. 2011. 7. 29.
SmashTheStack : level4@io.smashthestack 문제풀이 워게임 문제풀이 - SmashTheStack : level4@io.smashthestack 문제풀이 이번 문제는 내가 처음 접했을때 어떻게 해야될지를 몰라서 막막했던 문제였다. 약간의 힌트를 얻어 풀기는 했지만 시스템해킹의 답은 일단은 문제를 많이 푸는것이다. 경험을 많이 쌓아가야 한다. 이렇게 기초문제들을 풀어감으로써 기초들을 많이 쌓아야지 좀 더 깊숙하고 이론적인 버퍼 오버플로우, 포맷스트링과 같은 기술을 연마할 수 있게 되는 것이다. 나는 대회들의 문제를 다시 풀어보거나 대회 보고서를 많이 읽으려고 애쓴다. 읽으면 읽음으로써 패턴들이 머리속에 들어오게 되고 그 패턴덕에 앞으로 문제를 푸는데 도움이 되기 때문이다. 이런 생각을 가지는데 '+α' 를 갖게 해준 나의 친구 pwn3r 에게 깊은 고마움의 .. 2011. 7. 29.
SmashTheStack : level3@io.smashthestack 문제풀이 현재 팀에서는 Level4 를 풀고 있다. 미리미리 풀면 좋겠지만 시간이 많지도 않고 과반수가 문제풀이를 작성해야지만 넘어가는 수준이라 여유있게 공부할 수 있다. level3@io:/levels$ ./level03 Segmentation fault level3@io:/levels$ ./level03 aa Address of hmm: 0x804847f 프로그램을 그냥 실행하면 세그먼폴트가 뜨고 인자를 넘겨주면 어드레스가 출력되는데 고정 어드레스인 것 같다. level3@io:/levels$ ./level03 aa bb Address of hmm: 0x804847f level3@io:/levels$ ./level03 cc dd Address of hmm: 0x804847f 소스가 주어져 있으니 소스를 보면서.. 2011. 7. 21.