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)

Podržite HackTricks

Enlarge printed stack

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

Zatim, napadač poziva puts funkcionalnost na sredini payload-a koja će odštampati celu canary (osim prvog nulti bajta).

Sa ovom informacijom, napadač može pripremiti i poslati novi napad znajući canary (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 izvukao canary i zatim biti u mogućnosti da kreira novi payload (u istoј sesiji programa) i pošalje pravi buffer overflow.

CTF primeri:

Arbitrary Read

Sa arbitrary read kao što je onaj koji pružaju format stringovi može biti moguće otkriti canary. Pogledajte ovaj primer: https://ir0nstone.gitbook.io/notes/types/stack/canaries i možete pročitati o zloupotrebi format stringova za čitanje proizvoljnih memorijskih adresa 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)

Podržite HackTricks