unlink
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Kod
Graficzne wyjaśnienie
Sprawdź to świetne graficzne wyjaśnienie procesu unlink:
Kontrole bezpieczeństwa
Sprawdź, czy wskazany rozmiar kawałka jest taki sam jak prev_size wskazany w następnym kawałku
Sprawdź również, czy
P->fd->bk == P
iP->bk->fw == P
Jeśli kawałek nie jest mały, sprawdź, czy
P->fd_nextsize->bk_nextsize == P
iP->bk_nextsize->fd_nextsize == P
Wycieki
Nieodłączony kawałek nie czyści przydzielonych adresów, więc mając dostęp do rad, można wyciekać interesujące adresy:
Wycieki Libc:
Jeśli P znajduje się na początku podwójnie powiązanej listy,
bk
będzie wskazywać namalloc_state
w libcJeśli P znajduje się na końcu podwójnie powiązanej listy,
fd
będzie wskazywać namalloc_state
w libcGdy podwójnie powiązana lista zawiera tylko jeden wolny kawałek, P jest w podwójnie powiązanej liście, a zarówno
fd
, jak ibk
mogą wyciekać adres wewnątrzmalloc_state
.
Wycieki z pamięci:
Jeśli P znajduje się na początku podwójnie powiązanej listy,
fd
będzie wskazywać na dostępny kawałek w pamięciJeśli P znajduje się na końcu podwójnie powiązanej listy,
bk
będzie wskazywać na dostępny kawałek w pamięciJeśli P jest w podwójnie powiązanej liście, zarówno
fd
, jak ibk
będą wskazywać na dostępny kawałek w pamięci
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated