Nadpisywanie zwolnionego kawałka

Reading time: 2 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

Kilka z proponowanych technik wykorzystania sterty wymaga możliwości nadpisania wskaźników wewnątrz zwolnionych kawałków. Celem tej strony jest podsumowanie potencjalnych luk, które mogą umożliwić ten dostęp:

Proste Użycie Po Zwolnieniu

Jeśli atakujący może zapisać informacje w zwolnionym kawałku, może to wykorzystać do nadpisania potrzebnych wskaźników.

Podwójne Zwolnienie

Jeśli atakujący może zwolnić ten sam kawałek dwa razy (zwalniając inne kawałki pomiędzy) i sprawić, aby był 2 razy w tym samym pojemniku, użytkownik mógłby przydzielić kawałek później, zapisać potrzebne wskaźniki i następnie przydzielić go ponownie, co wywołałoby działania związane z przydzieleniem kawałka (np. atak na szybki pojemnik, atak tcache...)

Przepełnienie Sterty

Może być możliwe przepełnienie przydzielonego kawałka mającego obok zwolniony kawałek i modyfikacja niektórych nagłówków/wskaźników w nim.

Przepełnienie o jeden

W tym przypadku możliwe byłoby zmodyfikowanie rozmiaru następnego kawałka w pamięci. Atakujący mógłby to wykorzystać, aby sprawić, że przydzielony kawałek będzie miał większy rozmiar, następnie zwolnić go, co spowodowałoby, że kawałek zostałby dodany do pojemnika o innym rozmiarze (większym), następnie przydzielić fałszywy rozmiar, a atak uzyska dostęp do kawałka o rozmiarze, który jest większy niż w rzeczywistości, co zatem umożliwia sytuację z nakładającymi się kawałkami, która jest wykorzystywalna w ten sam sposób co przepełnienie sterty (sprawdź poprzednią sekcję).

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks