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

9.1 KiB
Raw Blame History

Έλεγχοι Ασφαλείας Συναρτήσεων Σωρού

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Αυτή η συνάρτηση αφαιρεί ένα κομμάτι από μια λίστα διπλά συνδεδεμένων κομματιών. Οι κοινοί έλεγχοι εξασφαλίζουν ότι η δομή της συνδεδεμένης λίστας παραμένει συνεπής κατά την αποσύνδεση των κομματιών.

  • Έλεγχοι Συνέπειας:
  • Έλεγχος εάν 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)
  • Έλεγχος Συνέπειας Κορυφαίου Κομματιού:
  • Για κομμάτια που δεν είναι fastbin, βεβαιωθείτε ότι το κομμάτι δεν είναι το ίδιο με το κορυφαίο κομμάτι.
  • Μήνυμα σφάλματος: double free or corruption (top)
  • Έλεγχοι Ορίων Μνήμης:
  • Βεβαιωθείτε ότι το επόμενο κομμάτι μνήμης βρίσκεται εντός των ορίων της αρένας.
  • Μήνυμα σφάλματος: double free or corruption (out)
  • Έλεγχος Bit Prev_inuse:
  • Βεβαιωθείτε ότι το bit προηγούμενου σε χρήση κομματιού στο επόμενο κομμάτι είναι επισημασμένο.
  • Μήνυμα σφάλματος: 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
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

Άλλοι τρόποι υποστήριξης του HackTricks: