House of Lore | Small bin Attack

Wesprzyj HackTricks

Podstawowe informacje

Kod

Cel

  • Wstaw fałszywy mały kawałek do małego pojemnika, aby można go było zaalokować. Zauważ, że dodany mały kawałek to fałszywy kawałek stworzony przez atakującego, a nie fałszywy kawałek w dowolnej pozycji.

Wymagania

  • Stwórz 2 fałszywe kawałki i połącz je ze sobą oraz z prawdziwym kawałkiem w małym pojemniku:

  • fake0.bk -> fake1

  • fake1.fd -> fake0

  • fake0.fd -> legit (musisz zmodyfikować wskaźnik w uwolnionym kawałku małego pojemnika za pomocą innej luki)

  • legit.bk -> fake0

Wtedy będziesz mógł zaalokować fake0.

Atak

  • Zaalokowany jest mały kawałek (legit), następnie zaalokowany jest kolejny, aby zapobiec konsolidacji z kawałkiem górnym. Następnie legit jest zwalniany (przenosząc go na listę nieuporządkowaną) i zaalokowany jest większy kawałek, przenosząc legit do małego pojemnika.

  • Atakujący generuje kilka fałszywych małych kawałków i tworzy potrzebne połączenia, aby ominąć kontrole spójności:

  • fake0.bk -> fake1

  • fake1.fd -> fake0

  • fake0.fd -> legit (musisz zmodyfikować wskaźnik w uwolnionym kawałku małego pojemnika za pomocą innej luki)

  • legit.bk -> fake0

  • Zaalokowany jest mały kawałek, aby uzyskać legit, przenosząc fake0 na listę górną małych pojemników

  • Następnie zaalokowany jest kolejny mały kawałek, uzyskując fake0 jako kawałek, co potencjalnie pozwala na odczyt/zapis wskaźników wewnątrz niego.

Odnośniki

Wesprzyj HackTricks

Last updated