입력만 받고 아무것도 없는 코드
쉘을 실행시켜야하는 문제
대략 이런 식으로 진행해야한다
ret:system에서 ret는 main문의 ret이고
ret(system)은 system 함수가 실행된 뒤 돌아올 ret이다
buffer를 가득 채워 main의 ret를 변조시켜
원래의 ret으로 가려하는 곳이 아니고 system함수로 가게해야한다
그 다음에는 중요한 부분인데 system함수를 실행시키고 돌아올
ret를 둘 공간이 필요하기 때문에 ret(system)저 부분은 빈공간으로 두고
그 아래에 /bin/sh을 삽입하여야 한다
이제 구해야 할 것은
buffer에서 main의 ret까지의 길이
system 함수의 위치
/bin/sh의 위치
system 함수의 위치를 알아내려면 일단 실행해야하기 때문에
main의 첫부분에 bp를 걸고 실행해야한다
buffer에서 ret까지는 76바이트
payload는 76바이트를 채우고 ret에 system함수주소 삽입
dummy값으로 system함수의 ret이 들어올 수 있게 빈공간 생성
그다음에 /bin/sh의 위치 삽입
interactive는 shell과 통신을 할 수 있게 하는 pwn명령어
성공