House of Lore | Small bin Attack
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundinformationen
Code
- Überprüfen Sie den von https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Das funktioniert nicht
- Oder: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Das funktioniert nicht, auch wenn es versucht, einige Überprüfungen zu umgehen, und den Fehler ausgibt:
malloc(): unaligned tcache chunk detected
- Dieses Beispiel funktioniert noch: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Ziel
- Fügen Sie einen falschen kleinen Chunk in den kleinen Bin ein, damit er dann zugewiesen werden kann.
Beachten Sie, dass der hinzugefügte kleine Chunk der gefälschte ist, den der Angreifer erstellt, und nicht ein gefälschter an einer beliebigen Position.
Anforderungen
- Erstellen Sie 2 gefälschte Chunks und verlinken Sie sie miteinander und mit dem legitimen Chunk im kleinen Bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(Sie müssen einen Zeiger im freigegebenen kleinen Bin Chunk über eine andere Schwachstelle ändern)legit.bk
->fake0
Dann können Sie fake0
zuweisen.
Angriff
- Ein kleiner Chunk (
legit
) wird zugewiesen, dann wird ein weiterer zugewiesen, um eine Konsolidierung mit dem oberen Chunk zu verhindern. Dann wirdlegit
freigegeben (was ihn in die unsortierte Bin-Liste verschiebt) und ein größerer Chunk wird zugewiesen, waslegit
in den kleinen Bin verschiebt. - Ein Angreifer generiert ein paar gefälschte kleine Chunks und macht die erforderlichen Verlinkungen, um die Überprüfungen zu umgehen:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(Sie müssen einen Zeiger im freigegebenen kleinen Bin Chunk über eine andere Schwachstelle ändern)legit.bk
->fake0
- Ein kleiner Chunk wird zugewiesen, um legit zu erhalten, wodurch
fake0
in die oberste Liste der kleinen Bins gelangt - Ein weiterer kleiner Chunk wird zugewiesen, wobei
fake0
als Chunk erhalten wird, was potenziell das Lesen/Schreiben von Zeigern innerhalb davon ermöglicht.
Referenzen
- 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
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.