Print Stack Canary

Pomozite HackTricks

Povećanje ispisivanja stack-a

Zamislite situaciju gde program podložan preplavljivanju stack-a može izvršiti funkciju puts koja ukazuje na deo preplavljenog stack-a. Napadač zna da je prvi bajt canary-ja nula bajt (\x00) i da su ostali bajtovi canary-ja nasumični bajtovi. Zatim, napadač može stvoriti preplavljivanje koje prepisuje stack sve do samo prvog bajta canary-ja.

Zatim, napadač poziva funkcionalnost puts na sredini payload-a koji će ispisati ceo canary (osim prvog nula bajta).

Sa ovim informacijama, napadač može kreirati 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 ispisuje sadržaj svog payload-a da bi izneo canary i zatim bio u mogućnosti da kreira novi payload (u istoj sesiji programa) i pošalje pravi buffer overflow.

CTF primeri:

Proizvoljno Čitanje

Sa proizvoljnim čitanjem kao što je ono koje pružaju format stringovi, moguće je procuriti canary. Proverite 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
Pomozite HackTricks

Last updated