일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- DFB
- master canary
- Reversing
- 나뭇잎 책
- HackCTF
- malware
- BOF
- _IO_FILE Arbitrary Address Write
- Android
- ROP
- DFC 2022
- UAF
- Lazenca
- __environ
- K-shield Junior
- _IO_FILE Arbitrary Address Read
- RTL
- _IO_FILE
- srop
- tcache
- heap exploit
- GOT overwrite
- seccomp
- H4CKING GAME
- vtable
- DreamHack
- shellcode
- Dynamic Analysis
- heap
- heap feng shui
Archives
- Today
- Total
Studying Security
[Heap Exploit] House of Spirit 본문
728x90
반응형
_int_free() 이해하기
메모리가 해제된 chunk의 포인터가 올바르게 정렬된 포인터인지 확인하기 위해 misaligned_chunk()를 요청함
chunk의 정렬이 올바르지 않다면 "free() : invalid pointer" 메시지와 함께 종료
해당 chunk의 size에 저장된 값이 MINSIZE 보다 작고 해당 값이 정상적으로 정렬된 값인지 확인함
조건을 충족하지 못한다면 "free() : invalid size" 메시지와 함께 종료
해당 chunk의 크기가 fastbin에 해당하는지 확인
다음 chunk의 size에 저장된 값이 아래 조건에 만족하는지 확인
- (chunk의 "size"에 저장된 값 - 사용된 flag bit를 모두 제거한 값) <= 2 * SIZE_SZ 확인
- (chunk의 "size"에 저장된 값 >= av->system_mem의 값) 확인
- 해당 Arena가 lock 되어있지 않을 경우 av→system_mem에 저장된 값이 거짓일 경우가 있습니다.
- 때문에 해당 Arena를 lock한 후에 앞에서 확인한 조건대로 값을 다시 확인합니다.
- 해당 조건이 충족되면 다음 청크의 "size"에 저장된 값이 비정상
- "free () : invalid next size (fast)"메시지와 함께 프로세스 종료
위의 조건을 모두 만족하면 해당 chunk는 정상적인 chunk이며 해당 chunk를 fastbin에 저장
전달된 chunk의 포인터가 Stack에 존재하는지 확인하지 않는다.
House of Spirit
조건
- stack에 가짜 chunk를 쓸 수 있을 때
- 해당 stack의 주소 + 0x10한 주소를 free()할 수 있을 때
과정
- stack에 fastbin에 해당하는 fake chunk를 작성한 후 메모리 할당을 malloc()에 요청 합니다.
- free( fake chunk의 주소 + 0x10 )를 하게되면 해당 chunk의 포인터가 fastbin[]에 저장됩니다.
- 해당 chunk의 크기로 malloc()을 호출하면, fastbin[]에 저장된 fake chunk의 포인터를 반환합니다.
stack영역에 메모리를 할당받을 수 있습니다.
Reference
The House of Spirit[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 einherjar (0) | 2022.05.08 |
---|---|
[Heap Exploit] House of Lore (0) | 2022.05.07 |
[Heap Exploit] House of Force (0) | 2022.05.04 |
[Heap Exploit] Poison null byte (0) | 2022.05.04 |
[Heap Exploit] Overlapping chunks (0) | 2022.05.02 |
Comments