본문 바로가기

system

x-mas ctf 2019 deadfile 2019 x-mas ctf deadfilebinary 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 = sys_number 0.. 더보기
seccomp_bypass_trick 보호되어 있는 글입니다. 더보기
linux file vtable check bypass linux file vtable check bypassvtable 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_info.. 더보기
pwnable.tw criticalheap 보호되어 있는 글입니다. 더보기
pwnable.tw printable 보호되어 있는 글입니다. 더보기
2019 d3ctf lonely_observer 2019 d3ctf lonely_observerpipe https://12bme.tistory.com/226d3ctf writeup https://www.anquanke.com/post/id/193939#h3-9pipe를 이용한 IPC를 구현한 바이너리이다.총 2개의 바이너리 mimic32, mimic64와 IPC 통신을 진행한다.간단하게 lonely_observer 바이너리에서 각각의 thread로 입력, 출력을 받고 이를 출력해준다.요로코롬 thread를 만들어서 각각의 바이너리를 관리한다.그리고 밑에서 buf에 입력을 받아 mimic32, mimic64에 전달해준다.근데 문제는 main_thread에서 memcmp로 mimic32, mimic64의 출력값을 비교한다.출력값이 같지 않으면 handle.. 더보기
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_stack ends커스텀 스택은 요로코롬 생겼고이런식으로 opcode들을 쭉쭉 분석해주면 된다.from pwn import * ​ #contex.. 더보기
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 조작이 가능하다는 점이다.exploitexploit의 대략적인 과정은 다음과 같다.tcache dup -> chunk overlappingunsortedbin free -> partial overwrite(1/16) -> stdin->f.. 더보기