Print Stack Canary

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Uvećaj štampanu stog

Zamislite situaciju u kojoj program koji je ranjiv na prelivanje stoga može izvršiti puts funkciju koja pokazuje na deo prelivanja stoga. Napadač zna da je prvi bajt kanarija null bajt (\x00) i da su ostali bajtovi kanarija nasumični. Tada, napadač može kreirati preliv koji prepisuje stog sve do prvog bajta kanarija.

Zatim, napadač poziva puts funkcionalnost u sredini payload-a koja će odštampati ceo kanarij (osim prvog null bajta).

Sa ovom informacijom, napadač može izraditi i poslati novi napad znajući kanarij (u istoj sesiji programa).

Očigledno, ova taktika je veoma ograničena jer napadač mora biti u mogućnosti da odštampa sadržaj svog payload-a da bi ekstraktovao kanarij i zatim biti u mogućnosti da kreira novi payload (u istoј sesiji programa) i pošalje pravi buffer overflow.

CTF primeri:

Arbitrarni Čitanje

Sa arbitrarnim čitanjem poput onog koji pružaju formatne nizove može biti moguće otkriti kanarij. Pogledajte ovaj primer: https://ir0nstone.gitbook.io/notes/types/stack/canaries i možete pročitati o zloupotrebi formatnih nizova za čitanje arbitrarnim memorijskim adresama u:

Format Strings

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks