일단 checksec로 무슨 보호기법이 걸려있는지 보도록 하자
일단 Canary와 PIE가 안걸려있음을 알 수 있다
일단 윈도우로 돌와와서 IDA로 확인을 해보자
67305985 = 0x4030201
딱봐도 s에서 bof을 일으켜 check값을 0xDEADBEEF로 바꿔주면 될 것 같다!
bof가 더 많이 일어났다면 그냥 ret에 system("/bin/dash")를 넣어주면 됬었다
일단 main+47쯤에 bp를 걸고 스택을 확인해보자
확인해보니 check인 0x4030201가 있고 더 위에 내가 입력한 0x34333231 1234가 있다
check는 ebp-0xC이고 s는 ebp-0x34이니 40을 더미로 채워주고 0xdeadbeef로 채워주면 될 것 같다!
원래는 거꾸로 써줘야하지만 우리의 폰툴은 그냥 p32()쓰면 된다!
exploit
쉽다!
'포너블(pwn)' 카테고리의 다른 글
HackCTF) Basic_FSB (0) | 2022.03.10 |
---|---|
HackCTF) Basic_BOF #2 (0) | 2022.03.09 |
pwnable.kr) fd 문제풀이! (0) | 2022.03.09 |
pie_leak하는 법 (0) | 2022.03.09 |
malloc_hook, free_hook offset 구하는 법(번외로 stdout도) (0) | 2022.03.07 |