unlink
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Δείτε αυτή τη σπουδαία γραφική εξήγηση της διαδικασίας unlink:
Ελέγξτε αν το υποδεικνυόμενο μέγεθος του chunk είναι το ίδιο με το prev_size που υποδεικνύεται στο επόμενο chunk
Ελέγξτε επίσης ότι P->fd->bk == P
και P->bk->fw == P
Αν το chunk δεν είναι μικρό, ελέγξτε ότι P->fd_nextsize->bk_nextsize == P
και P->bk_nextsize->fd_nextsize == P
Ένα αποσυνδεδεμένο chunk δεν καθαρίζει τις κατανεμημένες διευθύνσεις, οπότε έχοντας πρόσβαση για να το διαβάσετε, είναι δυνατό να διαρρεύσουν κάποιες ενδιαφέρουσες διευθύνσεις:
Libc Διαρροές:
Αν το P βρίσκεται στην κεφαλή της διπλά συνδεδεμένης λίστας, το bk
θα δείχνει στο malloc_state
στη libc
Αν το P βρίσκεται στο τέλος της διπλά συνδεδεμένης λίστας, το fd
θα δείχνει στο malloc_state
στη libc
Όταν η διπλά συνδεδεμένη λίστα περιέχει μόνο ένα ελεύθερο chunk, το P είναι στη διπλά συνδεδεμένη λίστα, και τόσο το fd
όσο και το bk
μπορούν να διαρρεύσουν τη διεύθυνση μέσα στο malloc_state
.
Διαρροές Heap:
Αν το P βρίσκεται στην κεφαλή της διπλά συνδεδεμένης λίστας, το fd
θα δείχνει σε ένα διαθέσιμο chunk στο heap
Αν το P βρίσκεται στο τέλος της διπλά συνδεδεμένης λίστας, το bk
θα δείχνει σε ένα διαθέσιμο chunk στο heap
Αν το P είναι στη διπλά συνδεδεμένη λίστα, τόσο το fd
όσο και το bk
θα δείχνουν σε ένα διαθέσιμο chunk στο heap
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)