unlink
Last updated
Last updated
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)
Sprawdź to świetne graficzne wyjaśnienie procesu unlink:
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
i P->bk->fw == P
Jeśli kawałek nie jest mały, sprawdź, czy P->fd_nextsize->bk_nextsize == P
i P->bk_nextsize->fd_nextsize == P
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ć na malloc_state
w libc
Jeśli P znajduje się na końcu podwójnie powiązanej listy, fd
będzie wskazywać na malloc_state
w libc
Gdy 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 i bk
mogą wyciekać adres wewnątrz malloc_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ęci
Jeśli P znajduje się na końcu podwójnie powiązanej listy, bk
będzie wskazywać na dostępny kawałek w pamięci
Jeśli P jest w podwójnie powiązanej liście, zarówno fd
, jak i bk
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)