Studying Security

[Heap Exploit] Use-After-Free(UAF) 본문

개념 정리/Heap

[Heap Exploit] Use-After-Free(UAF)

J4guar 2022. 4. 21. 02:41
728x90
반응형

메모리를 효율적 관리를 위해

 

해제된 chunk 중 요청된 메모리와 비슷하거나 같은 크기의 chunk가 존재한다면 이를 이용해 할당해주는 방식을 이용

Use-After-Free란?

해제된 chunk를 할당해주는 과정에 있어서 메모리의 데이터들을 초기화하지 않는다는 점을 이용해

 

메모리에 남아있던 데이터가 유출되거나 사용될 수 있기 때문에 발생하는 취약점

 

새로운 할당 요청이 들어왔을 때 요청된 크기와 비슷한 chunkbin(fastbin, smallbin, largebin, unsortedbin)이나 tcache에 있는지 확인해 있다면 해당 chunk를 꺼내어 재사용합니다.

 

이를 이용해 초기화되지 않은 메모리의 값을 읽어내거나 새로운 객체가 악의적인 값을 사용하게 유도할 수 있습니다.

 

<heap.c>

위의 파일을 gdb를 이용해 살펴보면

p1의 경우 0x4052a0에 할당되어 있는 것을 확인할 수 있습니다.

이제 p1이 해제되고 p3가 어디에 할당되는지 확인해보자

p1이 할당되었던 0x4052a0에 p3가 할당되어 있습니다.

 

  • 할당 요청된 크기와 같은 크기의 chunk가 free된 chunk에 존재하면 해당 영역을 할당해준다.

 

반응형

'개념 정리 > Heap' 카테고리의 다른 글

[Heap Exploit] Double Free Bug(DFB)  (0) 2022.04.22
[glibc] malloc 정리4 - tcache  (0) 2022.04.21
[glibc] malloc 정리3 - arena  (0) 2022.04.20
[glibc] malloc 정리2 - bin  (0) 2022.04.20
[glibc] malloc 정리  (0) 2022.04.19
Comments