mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
9.1 KiB
9.1 KiB
Έλεγχοι Ασφαλείας Συναρτήσεων Σωρού
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
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
- Έλεγχος Συνέπειας 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:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.