hakctf1 [HackCTF] (Pwnable) babyfsb 풀이 printf(buf) 부분에서 fsb 가 발생한다. buf 값의 입력가능 범위는 SFP 전까지이다. 리턴주소 ( __libc_start_main + 2XX ) 을 leak 하면서, 카나리 부분을 덮은 뒤, ___stack_chk_fail@got 을 main 함수로 덮는다. 2라운드 에서는, leak 한 주소를 바탕으로 ___stack_chk_fail@got 을 원샷 함수로 덮거나, printf@got 을 system 으로 덮은 다음, 카나리 부분을 덮은 뒤, buf 에 "/bin/sh" 를 입력해서 printf(buf) -> system("/bin/sh") 실행 일단 rsp + 6번째가 buf 의 값을 나타낸다. 프로그램을 실행하고, __stack_chk_fail@got 을 보면, 아직 호출된 적이 없기.. 2021. 5. 14. 이전 1 다음