일단 파일을 내려받아 아이다로 열어보았다. bss 세그먼트에 있는 name변수에 첫번째 문자열을 입력받고, s에 gets로 두번째 문자열을 입력받고 있다. 일단 스택부터 살펴보자. 문자열 s에 gets 함수를 통해 입력받고 있는데, 길이 제한이 없으므로 main의 ret 주소를 오버플로우 시킬 수 있다. 따라서 20바이트의 배열 + 4바이트의 sfp + 4바이트의 ret 로 페이로드를 날리면 ret 주소 오버플로우가 된다. 그런데 쉘을 실행시켜주는 함수가 함수 리스트에 존재하지 않는다. 이럴 땐 어떻게 해야될까? 바로 쉘코드를 어떤 위치에 직접 주입해서 함수가 리턴될 때 eip가 그 주소로 가도록 조작하는 방법을 쓰면 된다. 따라서 name 배열에 쉘코드를 주입하고, 리턴 주소를 name의 주소로 변조하..