WWW2Exec - .dtors & .fini_array
Last updated
Last updated
Naučite i vežbajte hakovanje AWS-a:HackTricks Obuka AWS Crveni Tim Stručnjak (ARTE) Naučite i vežbajte hakovanje GCP-a: HackTricks Obuka GCP Crveni Tim Stručnjak (GRTE)
Danas je vrlo čudno naći binarni fajl sa .dtors sekcijom!
Destruktori su funkcije koje se izvršavaju pre završetka programa (nakon što se funkcija main
završi).
Adrese ovih funkcija se čuvaju unutar .dtors
sekcije binarnog fajla i stoga, ako uspete da upišete adresu za shellcode u __DTOR_END__
, to će biti izvršeno pre nego što program završi.
Dobijte adresu ove sekcije sa:
Obično ćete pronaći DTOR markere između vrednosti ffffffff
i 00000000
. Dakle, ako vidite samo te vrednosti, to znači da nema registrovane funkcije. Dakle, prepšišite 00000000
sa adresom shell koda da biste ga izvršili.
Naravno, prvo morate pronaći mesto za čuvanje shell koda kako biste ga kasnije mogli pozvati.
Essentially this is a structure with functions that will be called before the program finishes, like .dtors
. This is interesting if you can call your shellcode just jumping to an address, or in cases where you need to go back to main
again to exploit the vulnerability a second time.
Da biste zloupotrebili .fini_array
kako biste dobili večitu petlju, možete proveriti šta je urađeno ovde: Ako imate najmanje 2 unosa u .fini_array
, možete:
Koristite svoj prvi zapis da pozovete ranjivu funkciju za proizvoljni zapis ponovo
Zatim, izračunajte povratnu adresu na steku koju čuva __libc_csu_fini
(funkcija koja poziva sve funkcije .fini_array
) i stavite tamo adresu __libc_csu_fini
Ovo će naterati __libc_csu_fini
da pozove sam sebe ponovo izvršavajući ponovo funkcije .fini_array
koje će pozvati ranjivu WWW funkciju 2 puta: jednom za proizvoljni zapis i još jednom da ponovo prepiše povratnu adresu __libc_csu_fini
na steku da bi se ponovo pozvao.
Imajte na umu da sa Full RELRO, odeljak .fini_array
je postavljen kao samo za čitanje. U novijim verzijama, čak i sa [Partial RELRO] odeljak .fini_array
je takođe postavljen kao samo za čitanje.
Naučite i vežbajte hakovanje AWS:HackTricks Training AWS Red Team Expert (ARTE) Naučite i vežbajte hakovanje GCP: HackTricks Training GCP Red Team Expert (GRTE)