버퍼오버플로우
-
FTZ - level17 풀이 / 환경변수 등록을 이용한 BOFCTF/Pwn 2019. 8. 13. 20:47
힌트를 보면 call 함수를 불러오는 자리에 쉘코드를 입력한 주소를 적어두면 될 것이다. gdb를 통해서 열어보자 attackme를 tmp로 우선 복사해서 bof를 gdb로 열어보자 가장먼저 메인을 확인해보면 buf는 ebp-56에 저장이 되고 있었다. 마지막 call에서 eax를 부르는 곳이 printit함수로 보이며 ebp-16이란 것을 알수가 있었다. 우리는 40만큼 더미값을 넣어주고 그 다음 4byte에 쉘코드 주소를 넣어주면 되는 것이다. gdb를 나와서 환경변수를 이용하도록 하자. 길다.. 쉘코드 내용은 당연히 system("/bin/sh"); 이다. env.c를 만들고 컴파일해서 실행함으로써 내가 등록한 환경변수의 주소값을 알아오자. 이제 이걸통해서 실행할때 이 주소를 넣어주면 끝 이 다음은..