환경변수를 오버플로우 시킨다.
USERNAME이 없으므로, USERNAME에 쉘코드를 넣어준다.
이 부분은 환경변수 부분이다!!
strncpy 이전
strncpy 이후
쉘이 들어간 구조체가 어디에 있는지 정확히 알 수 있다.
적당히 0xbffff5fc 라고 하자!
PATH가 들어가는 부분도 찾았다.
이 EBP는 GetEnv가 시작되고 나서 push ebp-> mov ebp esp 하고 나서의 ebp이므로
ebp+4지점 0xBFFFF79C가 GetEnv의 Return Address부분이다.
0x79c-0x6fc=160이므로
path를 오버플로우시켜 GetEnv의 Return Address를 0xbffff5fc로 덮자!