본문 바로가기

버퍼 오버플로우 FTZ 문제풀이5

해커스쿨(Hackerschool) FTZ Level15 문제풀이 해커스쿨(Hackerschool) FTZ Level15 문제풀이를 시작하겠습니다. [level15@ftz level15]$ ls attackme hint public_html tmp [level15@ftz level15]$ cat hint #include main() { int crap; int *check; char buf[20]; fgets(buf,45,stdin); if (*check==0xdeadbeef) { setreuid(3096,3096); system("/bin/sh"); } } 이번 문제소스는 아까와 같으나 check 가 포인터 변수 입니다. 저는 deadbeef 가 있는 곳의 주소를 덮어주는 방법을 이용했습니다. (gdb) disas main Dump of assembler code f.. 2011. 5. 10.
해커스쿨(Hackerschool) FTZ Level14 문제풀이 해커스쿨(Hackerschool) FTZ Level14 문제풀이를 시작하겠습니다. [level14@ftz level14]$ ls attackme hint public_html tmp 역시나 공격파일과 힌트파일이 있습니다. 힌트파일을 열어보면 메세지와 공격파일의 소스가 있습니다. [level14@ftz level14]$ cat hint 레벨14 이후로는 mainsource의 문제를 그대로 가져왔습니다. 버퍼 오버플로우, 포맷스트링을 학습하는데는 이 문제들이 최고의 효과를 가져다줍니다. #include #include main() { int crap; int check; char buf[20]; fgets(buf,45,stdin); if (check==0xdeadbeef) { setreuid(3095,309.. 2011. 5. 10.
해커스쿨(Hackerschool) FTZ Level13 문제풀이 해커스쿨(Hackerschool) FTZ Level13 문제풀이를 시작하겠습니다. [level13@ftz level13]$ ls attackme hint public_html tmp 공격대상 파일인 attackme 파일이 있고 힌트파일이 있습니다. [level13@ftz level13]$ cat hint #include main(int argc, char *argv[]) { long i=0x1234567; char buf[1024]; setreuid( 3094, 3094 ); if(argc > 1) strcpy(buf,argv[1]); if(i != 0x1234567) { printf(" Warnning: Buffer Overflow !!! \n"); kill(0,11); } } 문자열을 메인함수 인자로.. 2011. 4. 17.
해커스쿨(Hackerschool) FTZ Level12 문제풀이 해커스쿨(Hackerschool) FTZ Level12 문제풀이를 시작하겠습니다. 역시나 BOF 문제 입니다. 저는 현재 Level15 까지 풀었는데 매우 어려우면서도 재밌더라구요, 근데 힌트를 본게 흠이 라고 생각되서 공부할 겸 복습용으로 올려봅니다. [level12@ftz level12]$ ls attackme hint public_html tmp 역시나 공격해야되는 attackme 파일이 있고 힌트 파일이 있습니다. [level12@ftz level12]$ cat hint #include #include #include int main( void ) { char str[256]; setreuid( 3093, 3093 ); printf( "문장을 입력하세요.\n" ); gets( str ); prin.. 2011. 4. 13.
해커스쿨(HackerSchool) FTZ Level11 문제풀이 해커스쿨 FTZ Level11 부터 19 까지 BOF 문제 입니다. 매우 흥미롭고 위험한 기술 입니다. 처음 공부하시는 분들은 첨부파일로 둔 달고나님의 문서를 보고 공부하시길 바랍니다. [level11@ftz level11]$ ls attackme hint public_html tmp 힌트파일이 있고 공격해야되는 attackme 파일이 있습니다. [level11@ftz level11]$ cat hint #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); // 이 부분에 버퍼 오버플로우 취약점이 존재합니다. printf( str ); } 메인함수에서.. 2011. 4. 10.