Print Stack Canary

Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Sostieni HackTricks

Ingrandire lo stack stampato

Immagina una situazione in cui un programma vulnerabile a un overflow dello stack può eseguire una funzione puts che punta a una parte dell'overflow dello stack. L'attaccante sa che il primo byte del canary è un byte nullo (\x00) e il resto del canary sono byte casuali. Quindi, l'attaccante può creare un overflow che sovrascrive lo stack fino al solo primo byte del canary.

Successivamente, l'attaccante chiama la funzionalità puts nel mezzo del payload che stamperà tutto il canary (eccetto il primo byte nullo).

Con queste informazioni, l'attaccante può creare e inviare un nuovo attacco conoscendo il canary (nella stessa sessione del programma).

Ovviamente, questa tattica è molto limitata poiché l'attaccante deve essere in grado di stampare il contenuto del suo payload per esfiltrare il canary e quindi essere in grado di creare un nuovo payload (nella stessa sessione del programma) e inviare il vero buffer overflow.

Esempi CTF:

Lettura Arbitraria

Con una lettura arbitraria come quella fornita dalle stringhe di formato potrebbe essere possibile leakare il canary. Controlla questo esempio: https://ir0nstone.gitbook.io/notes/types/stack/canaries e puoi leggere su come abusare delle stringhe di formato per leggere indirizzi di memoria arbitrari in:

Format Strings

Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)

Sostieni HackTricks

Last updated