본문 바로가기

보안/시스템 보안

버퍼 오버플로우 실습 4

위 내용은 버퍼오버플로우 실습 3이랑 이어집니다

실습4에서는 실습 3이랑 거의 똑같은 것을 할것인데

실습 3에서는 gdb에서 run 을 할때 A로 도배를 해서 ebp와 return address가 어떻게 변했는지 확인을 하는 실습을 했는데

너무 A로만 도배를 해서 값이 어떻게 변했는지 알수가 없는데 문자를 중간에 다르게 해서 실습을 해보자

 

 

break 11 걸어주고

실행을 시킬때 마지막쯤에 다른 문자들을 넣어 준다

실습 3에서도 말했듯이

스택에 08로 시작하는 것은 명령어 쪽에 대한 리턴 주소들이고

          bf로 시작하는 것은 스택에 관한 주소들인것을 알수 있다.

즉 저 08(노란색 하이라이트)가 리턴 주소이고 그 바로 옆이 스택 데이터 이다

저 위치를 잘 기억해놓고 있다가

break 된 부분을 next로 풀고 esp 확인해보면

버퍼 오버플로우로 인해 리턴 주소 위치에 42414141 데이터가 들어가 있다.

문제는 cont을 통해 마져 실행시키면 42414141로 리턴을 하려다가 아무것도 없어서 오류가 난다

 

만약에 의미없는 위치로 이동이 아닌  권한 부여 없이 다른 레벨로 들어가는 등 다양한 방법으로 악용 될수 있다

 

반응형