Return to vuln Return to vuln 기법은 ROP 코드를 실행한 후 취약성이 있는 코드로 다시 돌아오는 기법을 말합니다. 이 기법을 사용하면 Got Overwrite를 하지 않아도 되서 Full RELRO가 걸려있어도 익스플로잇이 가능합니다. 실습
우리가 프로그램을 실행시키면 main 함수가 호출되기 전에 \_start, libc_start_main, libc_csu_init처럼 여러 함수가 실행됩니다.Return-to-Csu 기법은 이중 \_\_libc_csu_init 함수의 코드를 이용해서 최대 인자가 3개인
Return-to-vuln이란 ROP 코드를 실행한 후에 취약성이 있는 코드로 다시 이동하는 것을 말합니다.어떻게 이게 가능할까요?Return-to-csu 기법을 이용하면 됩니다.stage 1에서rbp ~ r15 까지 값을 모두 0으로 세팅하고 ret 값을 취약한 함수
특정 중심점을 기준으로 스택이 아니었던 공간을 스택 영역인 것처럼 사용하는 기법입니다. 이 기법을 통해 익스플로잇을 하기 위한 공간이 부족할 때 새로운 스택 영역을 확보할 수 있습니다.기존의 스택을 리얼 스택이라고 하고 새롭게 확보된 영역을 페이크 스택이라합니다. 가젯
printf(buf)에서 포멧 스트링 버그가 발생합니다.NX와 ASLR 방어기법이 걸려있기 때문에 libc base를 릭해서 system()과 /bin/sh를 구해야 하고 Got Overwrite를 통해 printf(buf)를 system("/bin/sh")로 변조하여