본문 바로가기

writeup

x-mas ctf 2019 deadfile

2019 x-mas ctf deadfile binary info [*] '/home/krrr/pwn/x-mas/dead_file/deadfile' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 메뉴형 heap challenge 이다. line CODE JT JF K ================================= 0000: 0x20 0x00 0x00 0x00000004 A = arch 0001: 0x15 0x00 0x0d 0xc000003e if (A != ARCH_X86_64) goto 0015 0002: 0x20 0x00 0x00 0x00000000 A = s..

더보기
material

linux file vtable check bypass

linux file vtable check bypass vtable check (glibc >= 2.24) /* _IO_vtable_check Source: https://code.woboq.org/userspace/glibc/libio/vtables.c.html#_IO_vtable_check */ ​ void attribute_hidden _IO_vtable_check (void) { #ifdef SHARED void (*flag) (void) = atomic_load_relaxed (&IO_accept_foreign_vtables); #ifdef PTR_DEMANGLE PTR_DEMANGLE (flag); #endif if (flag == &_IO_vtable_check) return; { Dl_i..

더보기
writeup

2019 d3ctf lonely_observer

2019 d3ctf lonely_observer pipe https://12bme.tistory.com/226 d3ctf writeup https://www.anquanke.com/post/id/193939#h3-9 pipe 를 이용한 IPC 를 구현한 바이너리이다. 총 2개의 바이너리 mimic32 , mimic64 와 IPC 통신을 진행한다. 간단하게 lonely_observer 바이너리에서 각각의 thread 로 입력, 출력을 받고 이를 출력해준다. 요로코롬 thread 를 만들어서 각각의 바이너리를 관리한다. 그리고 밑에서 buf 에 입력..

더보기
writeup

2019 d3ctf babyrop

2019 d3ctf babyrop 쉬운 custom vm 문제다. custom stack 을 이용하여 연산들을 쭉쭉 하는데 stack 에 존재하는 변수에 custom stack 을 만들어서 연산을 쭉쭉 한다. 딱 봐도 ret 덮을 수 있을 것 같죠?! opcode 분석들만 해주고 바로 onegadget 으로 쉘따면 됩니다. 00000000 custom_stack struc ; (sizeof=0x14, mappedto_6) 00000000 stack dq ? 00000008 stack_50 dq ? 00000010 length dd ? ; base 2 00000014 custom_stac..

더보기
writeup

2019 d3ctf ezfile

2019 d3ctf ezfile 취약점은 총 2개이다. ( + oob bug) 먼저, deleteNote 에서 UAF 가 발생한다. glibc 2.27 이므로, 이를 이용하여 tcache dup 공격을 진행할 수 있다. 그리고 encryptNote 에서 stack overflow 가 발생한다. 0x60 크기의 seed 에 0x68 만큼 입력받아 ret overwrite 가 가능하다. 특이한 점은, 마지막 함수 doSomeThing 에서 seed , index 를 인자로 받기 때문에, rdi, rsi 조작이 가능하다는 점이다. exploi..

더보기