House of Lore | Small bin Attack
Reading time: 3 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Basic Information
Code
- Έλεγχος του από https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Αυτό δεν λειτουργεί
- Ή: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Αυτό δεν λειτουργεί ακόμα και αν προσπαθεί να παρακάμψει κάποιους ελέγχους και εμφανίζει το σφάλμα:
malloc(): unaligned tcache chunk detected
- Αυτό το παράδειγμα λειτουργεί ακόμα: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Goal
- Εισάγετε ένα ψεύτικο μικρό κομμάτι στον μικρό κάδο ώστε να είναι δυνατή η κατανομή του.
Σημειώστε ότι το μικρό κομμάτι που προστίθεται είναι το ψεύτικο που δημιουργεί ο επιτιθέμενος και όχι ένα ψεύτικο σε τυχαία θέση.
Requirements
- Δημιουργήστε 2 ψεύτικα κομμάτια και συνδέστε τα μεταξύ τους και με το νόμιμο κομμάτι στον μικρό κάδο:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(πρέπει να τροποποιήσετε έναν δείκτη στο ελεύθερο μικρό κομμάτι μέσω κάποιας άλλης ευπάθειας)legit.bk
->fake0
Έτσι θα μπορείτε να κατανεμηθείτε fake0
.
Attack
- Ένα μικρό κομμάτι (
legit
) κατανεμήθηκε, στη συνέχεια, ένα άλλο κατανεμήθηκε για να αποτραπεί η συγχώνευση με το κορυφαίο κομμάτι. Στη συνέχεια, τοlegit
απελευθερώνεται (μετακινώντας το στη λίστα των αταξινόμητων κομματιών) και ένα μεγαλύτερο κομμάτι κατανεμήθηκε, μετακινώντας τοlegit
στον μικρό κάδο. - Ένας επιτιθέμενος δημιουργεί μερικά ψεύτικα μικρά κομμάτια και κάνει την απαραίτητη σύνδεση για να παρακάμψει τους ελέγχους εγκυρότητας:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(πρέπει να τροποποιήσετε έναν δείκτη στο ελεύθερο μικρό κομμάτι μέσω κάποιας άλλης ευπάθειας)legit.bk
->fake0
- Ένα μικρό κομμάτι κατανεμήθηκε για να αποκτήσει το legit, κάνοντάς το
fake0
στην κορυφή της λίστας των μικρών κάδων - Ένα άλλο μικρό κομμάτι κατανεμήθηκε, αποκτώντας το
fake0
ως κομμάτι, επιτρέποντας δυνητικά την ανάγνωση/γραφή δεικτών μέσα σε αυτό.
References
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.