본문 바로가기

hackerschool bof/hackerschool ftz12

해커스쿨 프리해킹존, FTZ 문제풀이 강의 재게 Level1 부터 다시 강의를 작성해보고자 합니다. 다시 올리는것만큼 저나 강의를 읽어주시는 분들이나 얻어가시는게 많으셔야 하니깐 보시는 분들이 어려워 한 다는 전제하에 최대한 많은 해석을 집어넣으려고 노력하려고 합니다. 제 문제풀이 목표는 해커스쿨 프리해킹존 FTZ 와 IO 의 문제풀이를 같이 병행하면서 올리고 난 다음에 바로 버퍼 오버플로우 문제풀이를 마저 쓰려고 합니다. 이번에는 한번 약간의 강의글도 올려보고 문제풀이를 시작하겠습니다. 그러면 기대 많이 해주시면 감사하겠습니다 ㅋㅎ 2011. 7. 21.
해커스쿨(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.
해커스쿨(HackerSchool) Level6 풀이내용! 너무늦게 Level6 강의를 올려봅니다, 요즘 시험기간이라 글을 작성할 시간이 별로 없어서 많이는 못 쓰겠지만 하루에 한 개씩이라도 남기는 습관을 가지도록 실천을 해봐야겠습니다 +_+ 우선 접속하면 저번 레벨처럼 명령어를 입력할 수 있지않고, 바로 힌트메세지가 뜹니다. "인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다." 라는 힌트가 주어졌습니다. 이 상태에서 아무키나 누르게되면 텔넷 접속 서비스라면 세 개의 서비스를 선택하는 창이 뜨는데, 그 곳에서 아무거나 입력하면 종료됩니다. 고로 그 상태에선 안될거라는 말이죠 인포샵 bbs의 텔넷 접속 메뉴에서 실제로 사용되던 해킹방법은 저 상태에서 Ctrl + C 를 눌르면 작업을 중지합니다. 혹은 이전 작업상태로 돌아갑니다. 이와 같은 상태에서.. 2010. 9. 8.
해커스쿨(HackerSchool) Level4 풀이내용! 제가 보니깐 4강을 작성 안 하고 5강 만 작성했더군요, 4강은 이미 다른 카페에 포스팅 했으므로 내용만 사진으로 올려봅니다. 2010. 9. 2.
해커스쿨(HackerSchool) Level5 풀이내용! 이번에는 해커스쿨 Level5 문제를 풀어보도록 하겠습니다. 이번 레벨 강의는 매우 간단하며 깊게 생각해보시면 금방 누구든지 풀 수 있는 문제입니다. 다른 문제들에 비해 비교적 빨리 끝날거라고 예상됩니다. 그러면 강의를 시작해보겠습니다. 먼저 힌트를 보겠습니다. 이번 Level5의 힌트는 '/usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp 라는 이름의 임시파일을 생성한다.' 아마 이 문구를 보여주는거 보면 level5.tmp 파일을 실행하면 비밀번호가 보일거라는 거겠죠? 그러면 우선 /usr/bin/level5 프로그램을 실행해보고 /tmp 폴더를 살펴봅시다. (cd /tmp -> ls) 엇? 그런데 level5.tmp 파일이 없습니다. 음.. 이 상황에서는 어떻게해야될까요?.. 2010. 8. 25.