uma_catch - SECCON Beginners CTF 2021
uma_catch - SECCON BeginnersCTF2021(My solver) 方針 Format Strings Bug によってlibc内のアドレスをリークし、 tcache poisoningでShellを取る。 FSBによるlibc leak src.cの197行目のshow関数では、 フォーマット指定子をしていないことによるFSBが起こる。 void show() { printf(list[get_index()]->name); } __libc_start_main内のアドレスを探す旅 次に、__libc_start_mainのアドレスを調べる。 以下のように調べることができる。 gef➤ disass __libc_start_main Dump of assembler code for function __libc_start_main: 0x00007ffff7a03b10 <+0>: push r13 0x00007ffff7a03b12 <+2>: push r12 (中略) 0x00007ffff7a03bf0 <+224>: mov rax,QWORD PTR [rsp+0x18] 0x00007ffff7a03bf5 <+229>: call rax 0x00007ffff7a03bf7 <+231>: mov edi,eax 0x00007ffff7a03bf9 <+233>: call 0x7ffff7a25240 <exit> 0x00007ffff7a03bfe <+238>: mov rax,QWORD PTR [rip+0x3ceda3] # 0x7ffff7dd29a8 (中略) 0x00007ffff7a03cc3 <+435>: call QWORD PTR [rdx+0x168] 0x00007ffff7a03cc9 <+441>: jmp 0x7ffff7a03ba5 <__libc_start_main+149> End of assembler dump....