BOF
-
[Hack CTF - Pwnable] Basic_BOF #2 Write UpCTF/Pwn 2019. 8. 16. 15:37
사실 엄청나게 쉬운 문제인데 너무 돌아갔었다. 헛수고한 시간이 화가나서 라업을 적기로 했다. 기드라로 확인한 파일의 메인 함수이다. fget으로 입력을 받고 그와 상관없이 sup 함수를 실행하기 위해서 함수 포인터를 사용하였다. sup 함수는 간단한 문구 출력 함수이다. 그래서 이 함수 포인터 스택값을 조작하기 위해서 개고생을 했다. 쉘코드를 버퍼에 입력해서 버퍼 값 주소를 찾아서 넘겨주려 했는데 사실 더 간단한 법이 있었다. 출제자님께서 저처럼 고생하지 말라고 사실 친절하게 shell 함수를 만들어두셨었다. 하.. 이렇게 떠먹여주고 있엇다니; 그래서 당장 이 함수의 주소값을 알아봤다. shell 함수의 어셈블리어 코드의 시작 주소는 0x0804849b이다. 그래서 이 주소를 fget 다음에 오는 sub..
-
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를 만들고 컴파일해서 실행함으로써 내가 등록한 환경변수의 주소값을 알아오자. 이제 이걸통해서 실행할때 이 주소를 넣어주면 끝 이 다음은..