위 내용은 버퍼오버플로우 실습 3이랑 이어집니다
실습4에서는 실습 3이랑 거의 똑같은 것을 할것인데
실습 3에서는 gdb에서 run 을 할때 A로 도배를 해서 ebp와 return address가 어떻게 변했는지 확인을 하는 실습을 했는데
너무 A로만 도배를 해서 값이 어떻게 변했는지 알수가 없는데 문자를 중간에 다르게 해서 실습을 해보자
break 11 걸어주고
실행을 시킬때 마지막쯤에 다른 문자들을 넣어 준다
실습 3에서도 말했듯이
스택에 08로 시작하는 것은 명령어 쪽에 대한 리턴 주소들이고
bf로 시작하는 것은 스택에 관한 주소들인것을 알수 있다.
즉 저 08(노란색 하이라이트)가 리턴 주소이고 그 바로 옆이 스택 데이터 이다
저 위치를 잘 기억해놓고 있다가
break 된 부분을 next로 풀고 esp 확인해보면
버퍼 오버플로우로 인해 리턴 주소 위치에 42414141 데이터가 들어가 있다.
문제는 cont을 통해 마져 실행시키면 42414141로 리턴을 하려다가 아무것도 없어서 오류가 난다
만약에 의미없는 위치로 이동이 아닌 권한 부여 없이 다른 레벨로 들어가는 등 다양한 방법으로 악용 될수 있다
반응형
'보안 > 시스템 보안' 카테고리의 다른 글
버퍼 오버플로우 6 실습 (0) | 2022.05.14 |
---|---|
버퍼 오버 플로우 실습 5 (0) | 2022.05.02 |
버퍼오버플로우 실습 3 (0) | 2022.04.30 |
버퍼 오버 플로우 2 보안 환경 설정 (0) | 2022.04.23 |
버퍼 오버 플로우 실습 1 // gdb 오버플로우, 디버깅 (0) | 2022.04.23 |