일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- HackCTF
- UAF
- H4CKING GAME
- GOT overwrite
- Dynamic Analysis
- K-shield Junior
- shellcode
- DFC 2022
- __environ
- BOF
- heap
- srop
- Android
- heap feng shui
- malware
- Lazenca
- DreamHack
- Reversing
- _IO_FILE
- DFB
- master canary
- heap exploit
- _IO_FILE Arbitrary Address Read
- ROP
- RTL
- _IO_FILE Arbitrary Address Write
- tcache
- 나뭇잎 책
- seccomp
- vtable
Archives
- Today
- Total
Studying Security
[Heap Exploit] House of Force 본문
728x90
반응형
※ malloc()에서 Top chunk를 사용하여 메모리를 할당하는 방법
- p = av->top; (main_arene→top이 가지고 있는 값을 victim에 저장)
- size = chunksize(p); (top chunk의 크기를 size에 저장)
- "top chunk의 크기(size)" >= "새로 요청된 메모리의 크기(nb) + chunk의 최소 크기(MINSIZE)"일 경우 Top chunk의 공간 사용
- "remainder_size" = "size" - 새로 요청된 메모리의 크기(nb)를 뺀 값
- "remainder" = victim에 저장된 값 + 새로 요청된 메모리의 크기(nb)
- main_arene→top = remainder
- set_head()를 이용하여 새로 요청된 메모리의 크기(nb)를 victim→size에 저장되고, remainder_size가 가지고 있는 값을 remainder→size 에 저장합니다.
- malloc()은 chunk2mem()가 호출되고 주소(p + 2*SIZE_SZ)를 반환합니다.
House of Force
조건
- Top chunk의 size에 저장된 값을 다른 값으로 덮어쓸수 있을 때
- 원하는 크기의 메모리 할당을 요청할 수 있을 때
과정
- 메모리 할당을 malloc()에 요청한 후 Top chunk의 값을 0xffffffffffffffff으로 덮어씁니다.
- 원하는 Memory 영역을 할당받기 위해 다음과 같이 계산된 값(size)을 malloc()함수의 인자 값으로 전달합니다.
- "할당 받기를 원하는 메모리의 주소" - "Chunk header size(16 or 8)" - Top chunk address - "Chunk header size(16 or 8)"
- 0x601010 - 0x10 - 0x602110 - 0x10 = 0xffffffffffffeee0
- 메모리 할당 요청 후에 할당 받고 싶은 메모리의 주소가 Top chunk에 저장됩니다.
- 메모리 할당을 malloc()에 요청하면 해당 메모리를 반환합니다.
0x601010영역에 함수의 GOT가 존재한다면 해당 영역을 overwrite할 수 있다.
Reference
The House of Force[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 Lore (0) | 2022.05.07 |
---|---|
[Heap Exploit] House of Spirit (0) | 2022.05.05 |
[Heap Exploit] Poison null byte (0) | 2022.05.04 |
[Heap Exploit] Overlapping chunks (0) | 2022.05.02 |
[Heap Exploit] Unsorted bin attack (0) | 2022.05.02 |
Comments