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

Stack buffer overflow: le basi che reggono tutto

17 ottobre 2025 · 1 min di lettura · #binary-exploitation #stack #memory

Le variabili locali vivono sullo stack, accanto all'indirizzo di ritorno della funzione. Un gets() o un strcpy() senza limiti scrive oltre il buffer e raggiunge quel puntatore.

void vuln(){ char buf[64]; gets(buf); }  // nessun limite

Con 64 byte di buffer + salvataggio di rbp, il 73esimo gruppo di byte finisce nel return address. Controllandolo, controlli dove salta la CPU al ret.

Trovare l'offset

cyclic 200      # pattern De Bruijn
# dopo il crash:
cyclic -l 0x6161... # offset esatto del return address

Difesa

Stack canary (rileva l'overflow prima del ret), NX (stack non eseguibile), ASLR, e soprattutto funzioni con limiti (fgets, strncpy). Compilatori moderni con _FORTIFY_SOURCE intercettano molti casi.


« 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