Stampa Stack Canary

Reading time: 3 minutes

tip

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

Supporta HackTricks

Ingrossa lo stack stampato

Immagina una situazione in cui un programma vulnerabile a overflow dello stack può eseguire una funzione puts puntando a 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. Poi, l'attaccante può creare un overflow che sovrascrive lo stack fino al primo byte del canary.

Poi, 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 ristretta poiché l'attaccante deve essere in grado di stampare il contenuto del suo payload per esfiltrare il canary e poi 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 da stringhe di formato, potrebbe essere possibile esfiltrare il canary. Controlla questo esempio: https://ir0nstone.gitbook.io/notes/types/stack/canaries e puoi leggere di come abusare delle stringhe di formato per leggere indirizzi di memoria arbitrari in:

{{#ref}} ../../format-strings/ {{#endref}}

tip

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

Supporta HackTricks