목록CTF Write-up (9)
cgy12306
vuln 파일을 IDA로 열어봤다. read로 0x256 만큼 쓰고, 써진걸 puts로 출력해준다. buf의 위치는 rbp-100h 이다. 그러면 0x100만큼 덮어주고 rbp도 0x8만큼 덮어주면 ret에 접근할 수 있을 것이다. rop 기법을 사용할 것이다. puts의 offset을 구한다. offset은 0x809c0이다. puts는 인자를 한 개 받는다.64bit 함수 호출 규약에서는 처음 인자를 rdi에 넣기 때문에 pop rdi ; ret 가젯의 주소를 알아야 한다. ROPgadget을 이용해서 가젯의 주소를 알아내자 pr(pop ret)의 주소는 0x401223이다. pr 가젯을 실행한 후 puts로 puts의 got를 출력해준다. 이후 rbp와 pr의 주소까지 recv 해준다.(B*8 + ..
CTF Write-up
2019. 10. 31. 15:16