mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
5.9 KiB
5.9 KiB
힙 함수 보안 점검
htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 히어로까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 telegram 그룹에 가입하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
unlink
이 함수는 이중 연결 리스트에서 청크를 제거합니다. 일반적인 점검은 청크를 unlink할 때 연결된 리스트 구조가 일관되게 유지되도록 합니다.
- 일관성 점검:
P->fd->bk == P
및P->bk->fd == P
인지 확인합니다.- 오류 메시지:
corrupted double-linked list
_int_malloc
이 함수는 힙에서 메모리를 할당하는 역할을 합니다. 여기서의 점검은 할당 중에 메모리가 손상되지 않도록 합니다.
- Fastbin 크기 확인:
- fastbin에서 청크를 제거할 때, 청크의 크기가 fastbin 범위 내에 있는지 확인합니다.
- 오류 메시지:
malloc(): memory corruption (fast)
- Smallbin 일관성 확인:
- smallbin에서 청크를 제거할 때, 이중 연결 리스트의 이전 및 다음 링크가 일관되게 유지되는지 확인합니다.
- 오류 메시지:
malloc(): smallbin double linked list corrupted
- Unsorted Bin 메모리 범위 확인:
- unsorted bin의 청크 크기가 최소 및 최대 제한 내에 있는지 확인합니다.
- 오류 메시지:
malloc(): memory corruption | malloc(): invalid next size (unsorted)
- Unsorted Bin 일관성 확인 (첫 번째 시나리오):
- 나머지 청크를 unsorted bin에 삽입할 때,
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
인지 확인합니다. - 오류 메시지:
malloc(): corrupted unsorted chunks
- Unsorted Bin 일관성 확인 (두 번째 시나리오):
- 이전 확인과 동일하지만, 빠른 또는 작은 청크를 분할한 후 삽입할 때 트리거됩니다.
- 오류 메시지:
malloc(): corrupted unsorted chunks 2
_int_free
이 함수는 이전에 할당된 메모리를 해제합니다. 여기서의 점검은 적절한 메모리 해제를 보장하고 메모리 손상을 방지하는 데 도움을 줍니다.
- 포인터 경계 확인:
- 해제되는 포인터가 메모리 주변을 감싸지 않도록 합니다.
- 오류 메시지:
free(): invalid pointer
- 크기 확인:
- 해제되는 청크의 크기가 적어도
MINSIZE
이거나MALLOC_ALIGNMENT
의 배수인지 확인합니다. - 오류 메시지:
free(): invalid size
- Fastbin 크기 확인:
- fastbin 청크의 경우, 다음 청크의 크기가 최소 및 최대 제한 내에 있는지 확인합니다.
- 오류 메시지:
free(): invalid next size (fast)
- Fastbin 이중 해제 확인:
- fastbin에 청크를 삽입할 때, 헤드에 있는 청크가 삽입되는 청크와 동일하지 않은지 확인합니다.
- 오류 메시지:
double free or corruption (fasttop)
- Fastbin 일관성 확인:
- fastbin에 삽입할 때, 헤드 청크와 삽입되는 청크의 크기가 동일한지 확인합니다.
- 오류 메시지:
invalid fastbin entry (free)
- Top Chunk 일관성 확인:
- fastbin이 아닌 청크의 경우, 청크가 최상위 청크와 동일하지 않은지 확인합니다.
- 오류 메시지:
double free or corruption (top)
- 메모리 경계 확인:
- 메모리 영역의 경계 내에 있는 다음 청크를 확인합니다.
- 오류 메시지:
double free or corruption (out)
- Prev_inuse 비트 확인:
- 다음 청크의 이전 사용 중 비트가 표시되어 있는지 확인합니다.
- 오류 메시지:
double free or corruption (!prev)
- 정상 크기 확인:
- 다음 청크의 크기가 유효한 범위 내에 있는지 확인합니다.
- 오류 메시지:
free(): invalid next size (normal)
- Unsorted Bin 일관성 확인:
- 병합된 청크를 unsorted bin에 삽입할 때,
unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
인지 확인합니다. - 오류 메시지:
free(): corrupted unsorted chunks
htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 히어로까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 telegram 그룹에 가입하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.