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)
offset = 40
맞는지 확인
main+86에 bp를 걸고
pattern create와 pattern offset으로 본다
40바이트 만큼 맞음
로컬에서 확인
'Wargame, CTF > hackCTF[Pwnable]' 카테고리의 다른 글
Basic_BOF#2 (0) | 2020.02.29 |
---|