Wargame, CTF/hackCTF[Pwnable] (2) 썸네일형 리스트형 Basic_BOF#2 gdb로 본 함수 정보를 봐서 v5가 함수포인터로 선언되고 char형 s에 fgets로 133바이트만큼 입력을 받고 v5를 실행 입력한 값을 bof시켜 v5를 덮어서 원래의 v5가 아닌 shell함수를 실행 시켜야 하는 것 같음 fgets이후에 함수 호출하는 부분으로 v5()를 호출하는 부분인거 같음 이제 입력값으로부터 v5값의 offset을 구함 main+59에 bp를 걸고 pattern 찾기' offset = 128 잘 됨 Basic_BOF#1 char형 변수와 int형 변수를 하나 선언 int형변수값을 67305985로 초기화 fgets로 s에 45바이트만큼 입력 받음 첫 if문에서 int형 변수의 값이 변했고 -559038737가 아니면 You are on the right way 출력 두번째 if문에서 int형 변수가 정확히 -559038737이면 쉘을 실행시킴 입력은 s만 받고 int형 변수는 건드리는 부분이 없고 제목을 봐서 buffer overflow를 이용해서 입력받은 s를 넘치게해 int를 원하는 값으로 바꿔야함 gdb로보니 원하는 값은 0xdeadbeef인거 같음 일단 s에서 int형 변수까지의 거리를 구함 int형 변수의 위치는 ebp-0xc s의 위치는 ebp-0x34 0x34 - 0xc = 0x28(40byte) offse.. 이전 1 다음