문제 분석
gets를 이용해
main 함수의 ret 조작
풀이
1. str 크기 : 264bytes
2. shellcode 환경 변수 저장
환경변수 시작주소가 안맞을 수도 있기 때문에 환경변수에 “\x90”(nop)을 여유있게 넣어준다.
3. 저장된 shellcode 주소 : 0xbffffbde
이름이 "SHELLCODE"인 환경변수의 주소를 출력해주는 함수 작성 -> 실행
4. payload = dummy(268bytes) + ret
= "a"*268 + 0xbffffbde
참고
cat을 쓰는 이유
프로그램을 실행하면 쉘이 열렸다 바로 닫히기 때문에 cat을 실행해서 cat에 입력한 값을 쉘에 넘겨준다.