본문 바로가기

해커스쿨 FTZ ( level12 -> level13 ) by ORANG FTZ_level12 [level12@ftz level12]$ bash2[level12@ftz level12]$ cat hint #include #include #include int main( void ){ char str[256]; setreuid( 3093, 3093 ); printf( "문장을 입력하세요.\n" ); gets( str ); printf( "%s\n", str );} bash2부터 띄워주시고요~~level11과 비슷하지만 인자로 전달받지 않는다는점만 다르네요ㅎㅎgets 함수 역시 입력받을 수 있는 문자열 크기 제한이 없으므로 BOF 취약점이 있습니다. 간단하게 분석후, 메모리 구조를 그려보겠습니다. (gdb) disas mainDump of assembler code for func.. 더보기
해커스쿨 FTZ ( level11 -> level12 ) by ORANG FTZ_level11 [level11@ftz level11]$ bash2​[level11@ftz level11]$ lsattackme hint public_html tmp[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 );} bash에서는 셸코드중 /xff 에서 문제가 생기므로 bash2로 시작하겠습니다. 버퍼 오버 플로우 문제네요먼저 메모리 구조를 그려보겠습니다 [level11@ftz level11]$ cp attackme tmp/attackit[level11@ftz.. 더보기
해커스쿨 FTZ ( level10 -> level11 ) by ORANG FTZ_level10 [level10@ftz level10]$ cat hint 두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다.그 대화방은 공유 메모리를 이용하여 만들어졌으며,key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여level11의 권한을 얻어라. - 레벨을 완료하셨다면 소스는 지우고 나가주세요. 이 문제를 풀려면 공유 메모리에 대한 개념이 필요합니다.공유 메모리란 여러 프로세스가 공유하는 메모리 공간.. 입니다. 예를 들면 A라는 프로세스와 B라는 프로세스가 공유 메모리를 사용할 때,A와 B 프로세스는 각각의 메모리 공간을 가지고, 두 프로세스가 모두 사용할 수 있는 공유 메모리를 가집니다.공유 메모리를 사용하는 프로세스들은 해당 메모리에 접근할 수 있으므로A.. 더보기