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

GOT overwrite: dirottare le chiamate a libreria

23 settembre 2025 · 1 min di lettura · #binary-exploitation #got #memory

Con il linking dinamico, printf non è chiamata direttamente: passa dalla PLT, che salta all'indirizzo memorizzato nella GOT. Con lazy binding, la GOT è scrivibile.

L'attacco

Se hai una primitiva di scrittura arbitraria (format string, overflow di un puntatore), sovrascrivi free@got con l'indirizzo di system. La prossima free(ptr) esegue system(ptr); se ptr contiene "/bin/sh", hai una shell.

write(free_got, addr_of_system)
free("/bin/sh")  -> system("/bin/sh")

Difesa

Full RELRO (-Wl,-z,relro,-z,now): risolve tutti i simboli al load e rende la GOT sola lettura. Combinato con ASLR e PIE, toglie questo bersaglio comodo.


« 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