hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Stack canary: come si aggira

5 settembre 2025 · 1 min di lettura · #binary-exploitation #canary #stack

Il compilatore inserisce un valore casuale (canary) tra i buffer e il return address. Prima del ret lo controlla: se è cambiato, aborta. Un overflow lineare deve attraversarlo, quindi lo altera e viene rilevato.

Le vie d'uscita

Leak: una format string o un overread stampa il canary; lo riscrivi identico nel payload.

Brute-force: nei processi che fanno fork() il canary non cambia tra i figli; lo indovini byte per byte (256 tentativi per byte).

Scrittura non lineare: un overflow che salta il canary (indice arbitrario, off-by-one su un puntatore) raggiunge il return address senza toccarlo.

Difesa

Il canary è una mitigazione, non una barriera assoluta: va combinato con ASLR, PIE, RELRO e con l'eliminazione dei bug di memoria a monte. Evita leak (niente format string, niente overread).


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #0
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti