Heap Functions Security Checks
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
For more info check:
unlinkयह किए गए चेक का सारांश है:
जांचें कि चंक का निर्दिष्ट आकार अगले चंक में prev_size
के समान है
त्रुटि संदेश: corrupted size vs. prev_size
यह भी जांचें कि P->fd->bk == P
और P->bk->fw == P
त्रुटि संदेश: corrupted double-linked list
यदि चंक छोटा नहीं है, तो जांचें कि P->fd_nextsize->bk_nextsize == P
और P->bk_nextsize->fd_nextsize == P
त्रुटि संदेश: corrupted double-linked list (not small)
For more info check:
malloc & sysmallocफास्ट बिन खोज के दौरान जांचें:
यदि चंक गलत संरेखित है:
त्रुटि संदेश: malloc(): unaligned fastbin chunk detected 2
यदि आगे का चंक गलत संरेखित है:
त्रुटि संदेश: malloc(): unaligned fastbin chunk detected
यदि लौटाया गया चंक उसका इंडेक्स के कारण सही आकार नहीं है:
त्रुटि संदेश: malloc(): memory corruption (fast)
यदि tcache को भरने के लिए उपयोग किया गया कोई चंक गलत संरेखित है:
त्रुटि संदेश: malloc(): unaligned fastbin chunk detected 3
छोटे बिन खोज के दौरान जांचें:
यदि victim->bk->fd != victim
:
त्रुटि संदेश: malloc(): smallbin double linked list corrupted
कंसोलिडेट के दौरान जांचें जो प्रत्येक फास्ट बिन चंक के लिए की जाती है:
यदि चंक गलत संरेखित है तो ट्रिगर करें:
त्रुटि संदेश: malloc_consolidate(): unaligned fastbin chunk detected
यदि चंक का आकार उस आकार से भिन्न है जो इसे होना चाहिए:
त्रुटि संदेश: malloc_consolidate(): invalid chunk size
यदि पिछले चंक का उपयोग नहीं किया जा रहा है और पिछले चंक का आकार prev_chunk
द्वारा निर्दिष्ट आकार से भिन्न है:
त्रुटि संदेश: corrupted size vs. prev_size in fastbins
अनसॉर्टेड बिन खोज के दौरान जांचें:
यदि चंक का आकार अजीब है (बहुत छोटा या बहुत बड़ा):
त्रुटि संदेश: malloc(): invalid size (unsorted)
यदि अगले चंक का आकार अजीब है (बहुत छोटा या बहुत बड़ा):
त्रुटि संदेश: malloc(): invalid next size (unsorted)
यदि अगले चंक द्वारा निर्दिष्ट पिछले आकार चंक के आकार से भिन्न है:
त्रुटि संदेश: malloc(): mismatching next->prev_size (unsorted)
यदि victim->bck->fd == victim
नहीं है या victim->fd == av (arena)
नहीं है:
त्रुटि संदेश: malloc(): unsorted double linked list corrupted
चूंकि हम हमेशा अंतिम एक की जांच कर रहे हैं, इसका fd हमेशा arena संरचना की ओर इशारा करना चाहिए।
यदि अगले चंक का संकेत नहीं है कि पिछले का उपयोग किया जा रहा है:
त्रुटि संदेश: malloc(): invalid next->prev_inuse (unsorted)
यदि fwd->bk_nextsize->fd_nextsize != fwd
:
त्रुटि संदेश: malloc(): largebin double linked list corrupted (nextsize)
यदि fwd->bk->fd != fwd
:
त्रुटि संदेश: malloc(): largebin double linked list corrupted (bk)
बड़े बिन (इंडेक्स द्वारा) खोज के दौरान जांचें:
bck->fd-> bk != bck
:
त्रुटि संदेश: malloc(): corrupted unsorted chunks
बड़े बिन (अगले बड़े) खोज के दौरान जांचें:
bck->fd-> bk != bck
:
त्रुटि संदेश: malloc(): corrupted unsorted chunks2
टॉप चंक उपयोग के दौरान जांचें:
chunksize(av->top) > av->system_mem
:
त्रुटि संदेश: malloc(): corrupted top size
tcache_get_n
tcache_get_n
में जांचें:
यदि चंक गलत संरेखित है:
त्रुटि संदेश: malloc(): unaligned tcache chunk detected
tcache_thread_shutdown
tcache_thread_shutdown
में जांचें:
यदि चंक गलत संरेखित है:
त्रुटि संदेश: tcache_thread_shutdown(): unaligned tcache chunk detected
__libc_realloc
__libc_realloc
में जांचें:
यदि पुराना पॉइंटर गलत संरेखित है या आकार गलत था:
त्रुटि संदेश: realloc(): invalid pointer
_int_free
For more info check:
free_int_free
की शुरुआत में जांचें:
पॉइंटर संरेखित है:
त्रुटि संदेश: free(): invalid pointer
आकार MINSIZE
से बड़ा और आकार भी संरेखित है:
त्रुटि संदेश: free(): invalid size
_int_free
tcache में जांचें:
यदि mp_.tcache_count
से अधिक प्रविष्टियाँ हैं:
त्रुटि संदेश: free(): too many chunks detected in tcache
यदि प्रविष्टि संरेखित नहीं है:
त्रुटि संदेश: free(): unaligned chunk detected in tcache 2
यदि मुक्त चंक पहले से ही मुक्त किया गया था और tcache में चंक के रूप में मौजूद है:
त्रुटि संदेश: free(): double free detected in tcache 2
_int_free
फास्ट बिन में जांचें:
यदि चंक का आकार अमान्य है (बहुत बड़ा या छोटा) ट्रिगर करें:
त्रुटि संदेश: free(): invalid next size (fast)
यदि जोड़ा गया चंक पहले से ही फास्ट बिन का शीर्ष था:
त्रुटि संदेश: double free or corruption (fasttop)
यदि शीर्ष पर चंक का आकार उस चंक के आकार से भिन्न है जिसे हम जोड़ रहे हैं:
त्रुटि संदेश: invalid fastbin entry (free)
_int_free_merge_chunk
_int_free_merge_chunk
में जांचें:
यदि चंक शीर्ष चंक है:
त्रुटि संदेश: double free or corruption (top)
यदि अगला चंक एरेना की सीमाओं के बाहर है:
त्रुटि संदेश: double free or corruption (out)
यदि चंक को उपयोग में नहीं चिह्नित किया गया है (अगले चंक के prev_inuse में):
त्रुटि संदेश: double free or corruption (!prev)
यदि अगले चंक का आकार बहुत छोटा या बहुत बड़ा है:
त्रुटि संदेश: free(): invalid next size (normal)
यदि पिछले चंक का उपयोग नहीं किया जा रहा है, तो यह कंसोलिडेट करने की कोशिश करेगा। लेकिन, यदि prev_size
पिछले चंक में निर्दिष्ट आकार से भिन्न है:
त्रुटि संदेश: corrupted size vs. prev_size while consolidating
_int_free_create_chunk
_int_free_create_chunk
में जांचें:
अनसॉर्टेड बिन में चंक जोड़ते समय, जांचें कि unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
:
त्रुटि संदेश: free(): corrupted unsorted chunks
do_check_malloc_state
do_check_malloc_state
में जांचें:
यदि गलत संरेखित फास्ट बिन चंक:
त्रुटि संदेश: do_check_malloc_state(): unaligned fastbin chunk detected
malloc_consolidate
malloc_consolidate
में जांचें:
यदि गलत संरेखित फास्ट बिन चंक:
त्रुटि संदेश: malloc_consolidate(): unaligned fastbin chunk detected
यदि गलत फास्ट बिन चंक आकार:
त्रुटि संदेश: malloc_consolidate(): invalid chunk size
_int_realloc
_int_realloc
में जांचें:
आकार बहुत बड़ा या बहुत छोटा है:
त्रुटि संदेश: realloc(): invalid old size
अगले चंक का आकार बहुत बड़ा या बहुत छोटा है:
त्रुटि संदेश: realloc(): invalid next size
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)