[FTZ] 해커스쿨 ftz level14 level14 문제입니다. check 의 값이 0xdeadbeef 이어야 쉘을 실행시켜 줍니다. sub 0x38로 56크기 만큼 스택에 할당되어있고 deadbeef와 비교하는 check 는 cmp줄에서 16만큼 떨어져 있다는 것을 알 수 있습니다. 리틀엔디안 주의하면서 입력해 줍니다. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ level13 level13 문제입니다. hint에는 attackme의 코드가 적혀있습니다. i 의 값이 0x1234567이 아니면 kill과 동시에 프로그램이 죽어버립니다. i의 값을 유지하면서 쉘을 실행시켜야 합니다. 이때까지 한 방법과 같이 tmp에 옮겨서 gdb로 분석해보면 main실행시 스택에 sub 0x418로 1048크기 만큼의 공간을 할당하는 것을 알 수 있습니다. 그다음 mov줄을 보면 ebp-12의 위치에 0x1234567값을 넣는 것을 볼 수 있습니다. 이 곳이 i에 해당하는 자리겠네요. 즉 배열1024 + 12 + i의 값 + 1048나머지부분 + 시스템 주소, ret, /bin/sh 을 넣어주면 될 것 같습니다. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 ftz level12 사실 level11 ~ 19? 까지는 문제가 거의 비슷하거나 같은 문제가 많습니다. atackme 의 gdb 내용입니다. level11이랑 마찬가지로 공간 할당 크기도 같고 시스템 주소나 명령어 주소도 모두 같습니다. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ Level11 level 11의 힌트입니다. 아마도 버퍼오버플로우 문제 같습니다. 모든 파일을 출력해 보니 attackme라는 파일이 있습니다. 이 파일을 공격해서 level12의 권한을 따내는 것 같습니다. 하지만 12의 권한이 있어야 파일을 열 수 있기 때문에 tmp 에 attackme 파일을 복사해 줍니다. 복사한 attackme파일을 gdb로 분석하면 sub 0x108을 보니 스택에 264byte만큼의 공간을 확보하는 것을 볼 수 있습니다. 코드상에서 배열 256byte를 선언했는데 264의 나머지 부분은 더미 값 같습니다. 이 프로그램이 ret할 때 주소를 인위적으로 바꿔야합니다. Level12의 쉘을 띄워줄수 있는 /bin/sh 의 명령어를 사용할 수 있는 시스템 주소로 바꾸려고 합니다. 배열 256 + 쓰.. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ Level9 - Level10 level9 는 버퍼오버플로우 문제입니다. get함수는 string의 길이를 검사하지 않아서 버퍼 오버플로우에 취약한 함수입니다. buf에 40만큼 입력받은 후에 buf2의 앞 두글자가 go 이면 풀리도록 되어있습니다. 하지만 buf는 크기가 10이기 때문에 스택의 다음 영역까지 침범하게 됩니다. buf2가 buf와 얼마만큼 떨어져있는지는 모르기 때문에 여러번 입력해 줍니다. Level10은 못풀었던 문제였는데 다시 풀어야지 하고 까먹었습니다 ㅜㅜ 풀면 다시 올리도록 하겠습니다. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ Level8 find 명령어의 옵션을 잘 사용하시면 됩니다. find / -size 2700c 2>/dev/null | xargs grep -l level9f Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ Level7 Level7의 힌트 입니다. 2진수랑 관련있는 문제 같습니다. level7을 실행하려고 하니 비밀번호가 필요합니다. 의미없는 비밀번호를 입력했더니 -와 _로 이루어진 문장이 뜹니다. 2진수랑 관련있다는 것은 아마 -과 _이 1과 0 을 의미하는 것 같습니다. 띄어쓰기를 기준으로 2진수를 구한 다음에 구한 수를 ascii값과 비교합니다. 비밀번호는 mate. Wargame/FTZ 7년 전
[FTZ] 해커스쿨 FTZ Level6 level6의 힌트입니다. 이상한 점은 1 2 3번 어떤 것을 선택해도 프로그램이 종료된다는 것. 그래서 힌트가 뜨자마자 ctrl-c 로 프로그램을 종료시켰습니다. Wargame/FTZ 7년 전