level 72 해커스쿨 L.O.B level 7 [darkelf] darkelf 로그인 후 파일을 확인한다. 코드 파일을 확인한다. 힌트와 추가된 부분까지만 보겠다. 추가된 부분을 분석한다. argv[0]이 77이 아니면 if 문을 실행한다. 코드는 아주 간단하다. 지금까지 argv[1], argv[2]를 사용해서 argv[0]이 어떤 것인지는 알 순 있지만 어떻게 해야 할지 고민이 많아진다. gdb로 메모리 분석한다. 이때, 추가된 부분만 가져오겠다. level 6 [wolfman]에서 배운 어셈블리 언어의 if 문의 분석 방법을 통해 분석한다. strlen 함수를 부르고 cmp로 "%eax, 77"을 비교한다. 여기서 %eax 레지스터에는 argv[0]이 들어있고 77과 비교한다. 코드에서는 "!=(JNE)"인데 대우 명제를 취해 "==(JE)"를 사용해 argv[.. 2020. 5. 28. 해커스쿨 F.T.Z Level 7 level 7을 로그인 후 hint를 본다. 일단 무슨 파일인지 알아보기 위해 찾는다. user는 level8, group은 level7 현재 level7에 있으니 SetUID가 걸린 프로그램을 변경할 수 없으니 권한에 따라 실행을 할 수밖에 없다. 실행하면 비밀번호를 입력하라고 한다. 입력하면 오류가 난다. 이 오류는 개인이 F.T.Z 서버를 열어서 하는 경우 생기는 것이라고 한다. 이때 직접 root 계정으로 접속해 wrong.txt를 만들어주면 된다. bin 디렉터리에는 level7 계정으로는 파일을 만들 수 없으므로 root 계정에 로그인해야 한다. root 계정의 로그인은 su root 명령어로 로그인하고 비밀번호는 레드햇에 root에 들어가는 같은 비밀번호인 hackerschool이다. wro.. 2020. 2. 13. 이전 1 다음