일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- GOT overwrite
- heap
- tcache
- K-shield Junior
- _IO_FILE Arbitrary Address Write
- HackCTF
- __environ
- 나뭇잎 책
- ROP
- RTL
- UAF
- BOF
- DFC 2022
- malware
- Android
- heap feng shui
- heap exploit
- _IO_FILE Arbitrary Address Read
- Dynamic Analysis
- DreamHack
- Reversing
- vtable
- Lazenca
- master canary
- _IO_FILE
- seccomp
- srop
- H4CKING GAME
- DFB
- shellcode
Archives
- Today
- Total
Studying Security
[Heap Exploit] Overlapping chunks 본문
728x90
반응형
Overlapping chunks란?
- free chunk의 size 값을 변경하여 해당 free chunk가 원래 크기보다 더 큰 메모리를 할당받도록해 기존 chunk의 공간을 덮어쓰는 기법입니다.
- Unsorted list에 chunk가 배치되어 있고 해당 chunk가 요청된 크기를 할당하기에 충분하다면, 해당 chunk를 재할당합니다.
- 만약 요청된 메모리의 크기가 해당 chunk의 크기보다 작다면, 해당 chunk에서 요청된 크기만 큼 메모리를 할당하고 남은 메모리 공간은 arena에 반환합니다.
- 메모리를 분할하고 남은 크기가 매우 작을 경우에는 메모리를 분할하지 않고 chunk를 재할당합니다.
- 주의점
- Free chunk의 "size"에 저장되는 값 다음 free chunk의 "mchunkptr" 이거나, Top chunk여야 합니다.
Overlapping chunks flow(Top chunk)
- 예를 들어 다음과 같이 3개의 chunk를 할당받고 중간에 있는 chunk를 해제합니다.
- Free chunk의 "size"에 저장된 값은 0x111인데, 이 값을 0x1a1으로 변경합니다.
- 할당자는 free chunk의 크기가 0x1a1이라고 판단합니다.
- 그리고 다음 chunk의 위치는 Top chunk(0x6022B0)입니다.
- 크기가 0x190인 메모리 할당을 요청해서 받은 메모리와 3번째 메모리의 영역[Malloc(0x80)]이 겹치게 됩니다.
Overlapping chunks flow(Free chunk)
- 다음은 5개의 메모리를 할당받고 4번째 메모리를 해제합니다.
- 2번째 chunk의 "size"에 값을 0x101로 덮어쓴 후에 해당 chunk를 해제합니다.
- 2번째 chunk의 크기는 0x100이되고, 다음 chunk의 시작 위치가 0x602180이 됩니다.
- 이로 인해 2번째 chunk의 크기가 4번째 chunk의 "prev_size"에 저장되고, 4번째 chunk의 "size"가 가지고 있는 값에서 PREV_INUSE flag(0x1)가 제거됩니다.
- 그리고 크기가 240(0xF0)byte인 메모리 할당을 malloc에 요청하면 0x602090를 반환하고, 해당 chunk의 크기는 0x100이됩니다.
- 즉, 새로 할당받은 메모리와 3번째 메모리의 영역이 겹치게 됩니다.
Reference
Overlapping chunks[Korean] - TechNote - Lazenca.0x0
“html” 매크로 렌더링 오류 Notify your Confluence administrator that "Bob Swift Atlassian Apps - HTML" requires a valid license. Reason: VERSION_MISMATCH Excuse the ads! We need some help to keep our site up. “html” 매크로 렌더링 오
www.lazenca.net
반응형
'개념 정리 > Heap' 카테고리의 다른 글
[Heap Exploit] House of Force (0) | 2022.05.04 |
---|---|
[Heap Exploit] Poison null byte (0) | 2022.05.04 |
[Heap Exploit] Unsorted bin attack (0) | 2022.05.02 |
[Heap Exploit] Heap Feng Shui (0) | 2022.05.01 |
[Heap Exploit] Heap Spray (0) | 2022.05.01 |
Comments