SystemHacking/Protostar(16)
-
Protostar Stack3 [objdump]
Protostar Stack3번 문제입니다 gdb나 objdump를 이용해서 win()함수가 메모리의 어디에 있는지 확인하랍니다저는 objdump명령어를 사용해보겠습니다 #objdump -d stack3 | grep win -F5 " -d " : stack3을 디스어셈블 하겠다" grep win " : win 이라는 문자열 검색" -F5 " : 찾은 위치의 앞 뒤로 5줄 출력 64바이트만큼 버퍼오버플로우 시킨 후 함수포인터 " fp "의 주소에 win()함수의 주소를 덮어 씌운다그럼 함수포인터 " fp "가 호출 될 때 win()함수가 실행됩니다
2017.06.11 -
Protostar Stack2 [환경변수]
Protostar Stack2번 문제입니다 getenv("GREENIE") : GREENIE라는 환경변수의 값을 반환한다 따라서 우리는 환경변수를 선언해주어야합니다 " export 환경변수명=내용 "의 형태로 저장합니다. python문법을 이용해서 환경변수를 저장했습니다" $환경변수명 " 명령어를 통해서 환경변수를 사용할 수 있습니다
2017.06.11 -
Protostar Stack1 [little endian]
Protostar Stack1번입니다 버퍼오버플로우 시킨 후 " modified "변수에 0x61626364 라는 값을 덮어씌우면 됩니다" little endian " 규칙을 적용시켜야합니다little endian 은 1byte씩 주소값을 순서를 반대로 입력시키는 것입니다코드는 아래 사진과 같습니다
2017.06.11 -
Protostar Stack0 [BufferOverflow]
Protostar Stack0번입니다 gets()함수를 이용해서 문자열을 입력받아 " buffer "변수에 저장합니다 문자를 64byte만큼을 입력하면 buffer변수의 공간은 가득채워지고 문자를 더 입력하면 버퍼 오버플로우가 발생합니다하여 modified 변수의 값이 변질됩니다
2017.06.11