codegate 2017 - aeiou2017 codegate에서 나온 문제이다.되게 어려워보이는 문제지만 알고나면 이보다 더 쉬운문제는 없을 것 같당.바로보자 binary summaryPthreadTCB overwriteThread Control Block ( TCB ) BofSimple Rop 다른 쓰레드에서 터지는 bof를 이용해서 간단한 rop + TCB sturct overwrite를 수행해야한다. Vulnvoid *__fastcall start_routine(void *a1) { unsigned __int64 v2; // [rsp+8h] [rbp-1018h] char s; // [rsp+10h] [rbp-1010h] unsigned __int64 v4; // [rsp+1018h] [rbp-8h..
hitcon - stkof ( unsafe unlink )처음 풀어보는 unsafe unlink 문제이다.사실은... secret holder를 풀려고했는데 unsafe unlink기법도 익숙하지 않고, 한번도 해본적이 없기 때문에 연습삼아서 쉬운문제를 골랐당.binary summaryheap overflowunsafe unlinkgot overwriteunsafe unlink대충 fake chunk로 unlink매크로의 호출 루틴에서 여러 보호체크를 우회하고 전역변수에 존재하는 값을 조작하는 기법이다.핵심은 fake chunk를 두개 존재하게 한다는 것이다.heap a, b를 할당하고 전역변수 c가 존재할때heap a속에다가 fake chunk a-1을 생성. fake chunk a-1의 fd , bk..
tetct의 heap문제입니다 from pwn import * #context.log_level = 'debug' #p = remote("54.157.217.45", 19669) p = process('./oldschool') e = ELF("./oldschool") #l = e.libc l = ELF("./libc-2.23.so") #context.log_level = 'debug' def add(size, data): p.recvuntil(": ") p.sendline('1') sleep(0.3) p.recvuntil(": ") p.send(str(size)) sleep(0.3) p.recvuntil(": ") p.send(str(data)) sleep(0.3) def edit(..
[ Christmas CTF ] write-up12월 25일에 한 크리스마스 CTF이다...흑... 10등으로 마무리했다.adultsccomp , Dynamic SQL, Dead file 은 나랑 팀원들이 거의다 풀었는데 점수를 못얻어서 아쉬웠다...쨋든 나는 아침에 조금, 저녁에 조금밖에 못해서 쉬운거 몇개밖에 못풀었다..Solo TestSanta Gameauto injectionMIROMic check되게 쉬운것들 밖에 없다.... 수치.. Solo Test퍼블 먹을 수 있었는데 다른 문제 더 쉬운거 있나 찾아보다가 놓쳤당... summary질문몇개 물어본다 -> 통과하면 bofROP"/bin/sh\x00"이 로되리안 걸려서 cat 으로 플래그 땃다. exploit codefrom pwn import..