Użycie po zwolnieniu

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

Podstawowe informacje

Jak sama nazwa wskazuje, ta luka występuje, gdy program przechowuje pewną przestrzeń w stercie dla obiektu, zapisuje tam jakieś informacje, zwalnia ją, ponieważ nie jest już potrzebna, a następnie ponownie uzyskuje do niej dostęp.

Problem polega na tym, że nie jest to nielegalne (nie będzie błędów), gdy uzyskuje się dostęp do zwolnionej pamięci. Jeśli więc program (lub atakujący) zdołał przydzielić zwolnioną pamięć i przechować dowolne dane, to gdy zwolniona pamięć jest dostępna z początkowego wskaźnika, te dane mogły zostać nadpisane, co powoduje lukę, która będzie zależała od wrażliwości danych, które były pierwotnie przechowywane (jeśli był to wskaźnik funkcji, która miała być wywołana, atakujący mógłby ją kontrolować).

Atak pierwszego dopasowania

Atak pierwszego dopasowania celuje w sposób, w jaki niektórzy alokatory pamięci, takie jak w glibc, zarządzają zwolnioną pamięcią. Gdy zwalniasz blok pamięci, jest on dodawany do listy, a nowe żądania pamięci pobierają z tej listy od końca. Atakujący mogą wykorzystać to zachowanie do manipulacji które bloki pamięci są ponownie używane, potencjalnie zyskując nad nimi kontrolę. Może to prowadzić do problemów "użycia po zwolnieniu", gdzie atakujący mógłby zmienić zawartość pamięci, która jest ponownie przydzielana, tworząc ryzyko bezpieczeństwa.
Sprawdź więcej informacji w:

{{#ref}} first-fit.md {{#endref}}

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