hackerchool
-
[FTZ]해커스쿨(HackerSchool) LEVEL15 풀이(Solution)미사용/##Security 2015. 8. 15. 01:20
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL15 [그림 1] hint를 열어보면 [그림 1]과 같이 출력이 되는데 앞에 level14와 코드가 같은 것 처럼 보이나 사실 일부분이 조금 다르다. 우선 check 변수가 int * 형태이며, if에서 check 변수 값과 비교한 것이 아니고, check 변수에 있는 값을 역참조 한 값과 비교한다. [그림 2] gdb로 attackme를 열어보면 [그림 2]와 같이 출력이 되는데 buf 는 level14와 같이 [ebp-56] 부터 시작되고, cmp 를 보면 level14는 eax, 0xdeadbeef 였던 반면 이번엔 [eax], 0xdeadbeef 로 eax의 값을 역참조한 값과 비교하는 것을 확인할..
-
[FTZ]해커스쿨(HackerSchool) LEVEL12 풀이(Solution)미사용/##Security 2015. 8. 15. 01:18
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL12 [그림 1] hint 파일을 열어보면 [그림 1]과 같이 attackme 소스 코드가 출력이 된다. 이 프로그램의 특징은 gets 함수로 입력을 받아서 str 배열에 저장하는 방식으로 동작을 한다. level11의 경우 main 함수의 argv 로 값을 받아와서 strcpy 함수로 str 배열에 값을 저장했는데 level12는 그 데이터를 전달받는 방식이 다르다. gets 함수의 경우 사용자가 입력하는데로 크기의 제한 없이 데이터를 변수에 저장시키기 때문에 버퍼 오버플로우 공격에 취약한 함수이다. 그럼 우리가 생각해 볼 수 있는 것은 입력을 변수 공간 만큼 한 다음 RET 값을 쉘 코드가 있는 곳의 ..