hacktricks/binary-exploitation/heap/heap-functions-security-checks.md

10 KiB

हीप फंक्शन सुरक्षा जांचें

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

यह फ़ंक्शन एक डबली लिंक्ड सूची से एक चंक को हटाता है। सामान्य जांचें सुनिश्चित करती हैं कि जब चंक को अलग किया जाता है, तो लिंक्ड लिस्ट संरचना सुनिश्चित रहती है।

  • संरचना जांचें:
  • जांचें कि P->fd->bk == P और P->bk->fd == P
  • त्रुटि संदेश: corrupted double-linked list

_int_malloc

यह फ़ंक्शन हीप से मेमोरी का आवंटन करने के लिए जिम्मेदार है। यहाँ जांचें सुनिश्चित करती हैं कि आवंटन के दौरान मेमोरी को कोरप्ट नहीं किया गया है।

  • फास्टबिन साइज जांच:
  • जब फास्टबिन से एक चंक को हटाया जाता है, तो सुनिश्चित करें कि चंक का साइज फास्टबिन रेंज के भीतर है।
  • त्रुटि संदेश: malloc(): memory corruption (fast)
  • स्मॉलबिन संरचना जांच:
  • स्मॉलबिन से एक चंक को हटाते समय, सुनिश्चित करें कि डबली लिंक्ड सूची में पिछला और अगला लिंक संरचित हैं।
  • त्रुटि संदेश: malloc(): smallbin double linked list corrupted
  • अनसॉर्टेड बिन मेमोरी रेंज जांच:
  • सुनिश्चित करें कि अनसॉर्टेड बिन में चंक का साइज न्यूनतम और अधिकतम सीमाओं के भीतर है।
  • त्रुटि संदेश: malloc(): memory corruption | malloc(): invalid next size (unsorted)
  • अनसॉर्टेड बिन संरचना जांच (पहला स्थिति):
  • जब अनसॉर्टेड बिन में बची हुई चंक को डाला जाता है, तो जांचें कि unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
  • त्रुटि संदेश: malloc(): corrupted unsorted chunks
  • अनसॉर्टेड बिन संरचना जांच (दूसरी स्थिति):
  • पिछली जांच के समान, लेकिन जब एक फास्ट या स्मॉल चंक को विभाजित करने के बाद डाला जाता है।
  • त्रुटि संदेश: malloc(): corrupted unsorted chunks 2

_int_free

यह फ़ंक्शन पहले से आवंटित मेमोरी को मुक्त करता है। यहाँ की जांचें सहायक हैं सही मेमोरी डीएलोकेशन सुनिश्चित करने और मेमोरी कोरप्शन से बचाने में।

  • पॉइंटर सीमा जांच:
  • सुनिश्चित करें कि मुक्त किए जाने वाला पॉइंटर मेमोरी के चारों ओर नहीं घुम रहा है।
  • त्रुटि संदेश: free(): invalid pointer
  • साइज जांच:
  • सुनिश्चित करें कि मुक्त किए जाने वाले चंक का साइज कम से कम MINSIZE है या MALLOC_ALIGNMENT का एक गुणक है।
  • त्रुटि संदेश: free(): invalid size
  • फास्टबिन साइज जांच:
  • फास्टबिन चंक्स के लिए, सुनिश्चित करें कि अगले चंक का साइज न्यूनतम और अधिकतम सीमाओं के भीतर है।
  • त्रुटि संदेश: free(): invalid next size (fast)
  • फास्टबिन डबल मुक्ति जांच:
  • जब एक चंक को फास्टबिन में डाला जाता है, सुनिश्चित करें कि हेड पर चंक वही है जो डाला जा रहा है।
  • त्रुटि संदेश: double free or corruption (fasttop)
  • फास्टबिन संरचना जांच:
  • फास्टबिन में डालने के समय, सुनिश्चित करें कि हेड चंक और डाले जाने वाले चंक का साइज समान है।
  • त्रुटि संदेश: invalid fastbin entry (free)
  • टॉप चंक संरचना जांच:
  • गैर-फास्टबिन चंक्स के लिए, सुनिश्चित करें कि चंक टॉप चंक के समान नहीं है।
  • त्रुटि संदेश: double free or corruption (top)
  • मेमोरी सीमाएं जांच:
  • सुनिश्चित करें कि मेमोरी द्वारा अगला चंक एरीना की सीमाओं के भीतर है।
  • त्रुटि संदेश: double free or corruption (out)
  • पिछला_इनयूज़ बिट जांच:
  • सुनिश्चित करें कि अगले चंक में पिछला-इनयूज़ बिट मार्क किया गया है।
  • त्रुटि संदेश: double free or corruption (!prev)
  • सामान्य साइज जांच:
  • सुनिश्चित करें कि अगले चंक का साइज मान्य सीमाओं के भीतर है।
  • त्रुटि संदेश: free(): invalid next size (normal)
  • अनसॉर्टेड बिन संरचना जांच:
  • एक कोलिस्ड चंक को अनसॉर्टेड बिन में डालते समय, जांचें कि unsorted_chunks(av)->fd->bk == unsorted_chunks(av)
  • त्रुटि संदेश: free(): corrupted unsorted chunks
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके: