먼저 파일을 실행해보자 실행시켰더니 이상한 값이 나온다. 보호기법이 뭐가 있는지 확인해보자 NX가 걸려있다. 쉘코드를 사용하지 못한다. IDA로 파일을 까보자 v5에 sup함수의 주소를 넣고 s변수에 133바이트 만큼 입력을 받는다. 그리고 v5를 실행한다. sup함수는 s변수를 그대로 출력한다. s의 크기는 0x8c, 즉 140바이트인데 133바이트까지만 입력받을수 있으므로 RET는 변조를 하지 못한다. 그러나, sup() 함수의 주소를 담고 있는 void 포인터의 메모리는 덮어 쓸 수 있다. 이는 v5이므로 v5의 값을 변조시키면 문제는 풀릴것이다. 먼저 함수가 뭐가 있는지 살펴보자 shell이란 함수가 있는 것을 확인할 수 있다. v5에 shell함수의 주소를 넣으면 문제가 풀릴것 같다. she..
prob1 파일을 다운받고 실행을 시켜보자 허가 거부라 뜬다. ls -al로 확인을 해보니 실행권한이 없는 것을 알 수 있다. 따라서 파일에 접근 권한을 주기 위해 chmod를 사용하였다. chmod는 기존 파일 또는 디렉토리에 대한 접근 권한(파일 모드)을 변경할 때 사용되고 root에서 사용할 수 있다. chmod +x prob1을 통해 prob1 파일에 실행권한을 부여하자 다시 ls -al을 통해 확인하자 (위에 보다 시간이 더 빠른 이유는 처음에 ls -al로 확인하지 않고 실행권한을 부여해서 다시 다운받아서 해서 그렇습니다.) user(파일의 소유자)는 rwx접근권한을 가지게 되고, 이는 group도 마찬가지이다. others는 r과 x만 가능하다. 즉, 실행권한이 모두 다 부여된 것을 확인할 ..