-
[Stack 2]System/Protostar 2018. 2. 1. 20:53
[Stack 2 Code]
[Stack 2 실행]
getenv함수로 환경변수 GREENIE값을 불러온 후
strcpy함수로 버퍼에 복사하는 과정에서 BOF가 발생한다.
환경변수 GREENIE를 만든 후, AAAA를 넣어주고 실행을 하면 modified값을 출력한다.
BOF를 일으켜 modified변수에 0x0d0a0d0a를 넣어주면 Success 문구를 출력할 수 있다.
=======================================================
우선 버퍼공간이 64바이트니까 A를 64개 채워주고 스택상황을 확인해보자
저 부분이 strcpy함수를 호출하는 부분이니까
그 다음 주소인 0x080484e4에 BP를 걸고 실행을 한다.
ESP를 확인해보면 41(A)이 64개 채워진 다음 스택공간이
0으로 초기화된 modified변수임을 알 수 있다.
저 부분에 0d0a0d0a를 넣어주면 될 것 같다.
[첫 번째 시도]
그냥 이렇게 넣어주면 될 것같아서 시도 해봤는데
'\x0a'이렇게 한 묶음으로 읽지 않고, 'x' '0' 'a'이렇게 따로따로 읽어서 많은 시행 착오가 있었다..
[두 번째 시도]
그래서 python을 이용해서 저렇게 넣어줬다.
그리고 실행해보니까 Success문구가 나온다!
스택을 한번 확인해서 제대로 들어갔는지 확인해보자
0x0d0a0d0a
제대로 들어갔음을 확인할 수 있다.
댓글