Profile

머리정리하는곳

c2w2m2

Implementation of Realloc

사실 이게 realloc.c 인줄았는데, 그냥 Implementation을 설명하기 위한 코드였다.... 실제 코드는 https://code.woboq.org/userspace/glibc/malloc/malloc.c.html#_int_realloc 여기 있는거 같다. 다음에 시간내서 분석해봐야겠다

Pwnable/Heap ·

[SwampCTF 2018]

Apprentice's Returnret 슬레드 한번 해주고 원샷으로 뛰면 된다. ret 주소는 문제에서 거르는 주소보다 조금 위에걸로 쓰자. Power QWORD그냥 원샷 써서 따면 된다 Dungeon Crawllevel1그냥 숫자 보내주면 된다level2그냥 덮어주면 된다.level3그냥 bof 하면 된다level4후... level5보다 어렵다. 사실 어렵기보단 짜증났다. 초기화 안된 스택이니까 v3에는 내가 넣은 주소가 들가고, 그거 콜하면 끝나는데 싹다 중간에 대입 하는데 73번만 대입 안한다ㅋㅋ....level5그냥 포맷스트링 하고, bof로 쉘따면 된다. Syscaller's LamentSROP를 써서 mprotect콜하고, 이걸로 코드영역에 쓰기를 준다. 이 때 eip는 write 할때 s..

Pwnable ·

Heap exploit

https://github.com/juckchang/heap_exploit 정리중

Pwnable/Heap ·

Fastbin dup consolidate

Fastbin dup consolidate 1. fastbin size의 heap1, heap2를 할당 2. heap1를 free 3. largebin size의 heap3 할당 (malloc_consolidate) 4. heap1를 free (DFB) 5. 그 후 malloc 2번은 heap1의 주소로 할당됨 heap1를 free 한후 largebin size의 heap을 할당하면 malloc_consolidate가 호출되면서 free되었던 heap1이 unsorted bin 으로 이동하게 된다. 따라서 fast-top에는 heap1이 없어짐으로 heap1을 한번더 free할 수 있다. 그 후 malloc 2번은 각각 fastbin, unsorted bin 에서 주소를 꺼내오면서 Duplicate가 된다.

Pwnable/Heap ·

[Securients 2018]

format 그냥 format string attack 이다. exit 를 main 시작점으로 덮고, printf 를 system 으로 덮은다음 ;/bin/sh 하면 끝 special bash jail? 같은건데 미리 정의된 환경변수 잘라다가 sh 만들면 된다. 하는거 미리알고 좀 빡세게 했으면 순위권 들수 있었을거 같은데 얼마 못해서 아쉽다ㅠㅠ

Pwnable ·

[angstrom2018] hellcode

이런식으로 쉽게 풀수 있다. Shellcoding 문제가 나왔을때 shellcode 가 실행될 때 레지스터를 잘 살펴보면 libc 주소가 들어있는 경우가 있기 때문에, 이를 잘 이용하면 쉽게 풀릴수도있다

Pwnable ·

[N1CTF2018] Vote

사실 어제 올린 글이 이문제 풀면서 생각해 본거다ㅋㅋ.. stage 1. heap1, heap2 를 malloc 후 free 시켜서 heap1 => heap2 만듬 -> heap2 을 vote 를 통해 fd 에 들어간 heap1 주소를 늘려서 원하는 주소를 받을 수 있게함 ( 힙 임의 쓰기 ) stage 2. heap3 을 만들어서 heap4 부근에 name 을 받아서 heap4 의 fd 를 조작할 수 있게끔 fake size 를 구성해줌. -> heap4,5 를 malloc 후 free 함 heap5 => heap4 -> heap1 => heap2 를 만들어 논것을 이용해서 heap4 부근의 fake size 로 주소를 받음 -> 이를 통해 heap4의 fd 를 조작할 수 있음. -> fd 를 mall..

Pwnable ·

Fastbindup

굳이 fastbin dup 을 해야지만 원하는 영역에 할당 받을 수 있는건 아니다. fastbin dup 을 제대로 이해했으면 다 알법 하지만 그래도 알아도 상황에 맞춰서 써먹기 힘든거 같아서,,, 좀 적어보겠다 Free 되어 fastbin 에 들어간 chunk 의 fd 를 조작할 수 있으면 굳이 duplicate 시키지 않아도 된다. 이 fd 를 조작할 수 없을경우, duplicate 시켜서 fd 를 조작할 수 있게 하는거다. 따라서 임의쓰기가 있고, heap address 를 leak 가능하다면, 굳이 duplicate 시키지 않고, free 시킨다음 직접적으로 fd 를 조작해 주는걸로 끝낼 수 있다. 막 내가 임의로 넣을 수 있는 값이 fd 영역에 들어가지 않는다던가 그런식일때 임의쓰기랑 연결해서 ..

Pwnable/Heap ·

BCTF2016 bcloud

strcpy 랑 read 널 안붙여주는거 연계해서 쓱쓱할수 있다. atoi 덮으면 귀찮으니까 다음부턴ㄷ ㅏ른거 덮자...

Pwnable ·