Profile

머리정리하는곳

c2w2m2

Fastbin duplicate without unsorted bin

제목 그대로 unsorted bin 을 통해서 하는 libc leak 없이 진행될수 있는 fastbin duplicate다. 간단하게 got에도 libc 주소가 0x7f~~꼴로 들어가니까 이걸 써서 할수도 있는데, 지금 해볼건 조금 다른거다. 다음같은 조건이 있을경우 써먹을 수 있다. 1. bss영역에 heap pointer가 존재할것.2. view메뉴가 있을것 ( 상황에 따라 생략 가능 )3. bss에 stdin, stdout 중 하나가 있을것4. Heap edit가 가능할것 이 4가지만 있으면 간단하게 fastbin duplicate가 가능하다. bss에는 보통 stdin, stdout이 있는데, 이건 libc영역에 존재하는것이라, 0x7f~~꼴의 주소를 가지게 된다. 이를 이용해서 이부분에 fake..

Pwnable/Heap ·

Freed Realloc

만약 Free된 청크를 Realloc 시킨다면 어떻게 될까. 만약 저장되는 bin 이 바뀐다면, realloc 시 DFB가 터지게 된다. 하지만, 이런코드에서는 다음같이, Free된 같은 주소를 받아낼 수 있다. 이말은 Fastbin일경우 Free된 fd를 control이 가능하단 얘기이다 (grin)~

Pwnable/Heap ·

Implementation of Realloc

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

Pwnable/Heap ·

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 ·

Fastbindup

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

Pwnable/Heap ·

Free Top chunk

overflow 로 Top chunk 사이즈 주작치고 더큰걸 할당하면 sysmalloc 으로 인해 Top chunk 가 free 된다.

Pwnable/Heap ·

Unsortedbin attack

2개 만들고 하나 free 하고 bk 에다가 사용할 주소 - 16 or 8 넣고 ( 64bit or 32bit ) 같은 크기로 할당해주면 사용할 주소에 main_arena의 영역주소가 저장된다. pwntw bookwriter 하려고 House of orange 보는데 이거 나오길래 일단 적어둔다

Pwnable/Heap ·

[HITCON-Trainning] lab 11

중간중간에 쉬운거 띄고 푼거 띄고 하니까 11부터 풀게됬다. unlink 도 되고 spirit 도 될거같고 Top 도 될거같은데 그냥 unlink 연습삼아 unlink로 했다.

Pwnable/Heap ·