[HackCTF] (Pwnable) Unexploitable_3 풀이
보호기법은 2와 마찬가지로 NX 정도 걸려있다. main 함수에서 0x90 만큼 오버플로우가 발생한다. gift 함수에는 fwrite 함수가 있는데, 밑부분을 보면, mov rcx, [rdi] 가젯이 있는데, 이걸로 fwrite 의 4번째 인자를 조작할 수 있다. fwrite(fgets@got, 1, 6, 0x601050 (stdout in bss)) 이렇게 호출하면 되는데, rdi, rsi, rdx 레지스터는 __libc_csu_init 가젯으로 맞추면 된다. pop rdi 가젯으로 rdi 에 bss 주소 넣기 mov rcx, [rdi] 가젯으로 rcx 에 stdout 이 들어가게 된다. 이제 csu 가젯으로 rdi, rsi, rdx 가젯을 세팅하고, fwrite 로 leak 을 한다. 다시 main ..
2021. 5. 3.