Format string attack: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: accenti e modifiche minori
m - refuso
Riga 1:
{{S|sicurezza informatica}}
 
Le '''format string attack''' (''vulnerabilità di formato della stringa'') sono una classe di vulnerabilità scoperte nel 1999.
 
== Introduzione ==
Riga 22:
 
== Funzionamento dello stack ==
Lo stack è un'area di memoria in cui vengono salvate le variabili locali e i parametri passati alla funzione. La sua gesitone è di tipo LIFO e cresce verso indirizzi bassi. Eseguendo questo semplice codice, ad esempio:
<source lang="c">
#include <stdio.h>
Riga 56:
 
Il parametro di formato "%08x" è costituito dai seguenti componenti:
* x (converti i carrattericaratteri in esadecimale),
* 8 (mostra otto caratteri),
* 0 (riempi di zeri i caratteri nulli, se presenti).
Riga 64:
È possibile anche leggere aree di memoria diverse dallo stack. Dobbiamo però creare una format function che visualizza il contenuto della memoria all’indirizzo che gli forniamo. Ci servirà quindi l’indirizzo da cui andare a leggere ed il giusto parametro di formato per leggerlo.
 
La nostra format function mantiene all’interno dello stack il puntatore alla locazione di memoria del parametro di formato. Se fossimo in grado di far puntare quel puntatore all’area di memoria che ci interessa, potremmo dare quell’indirizzo al formato parametro "%s" così che, invocando la printf(), questa leggerà la memoria da quell’indirizzo fino a che non trova un carattere terminatore ‘0’.
 
Utilizzando ad esempio la seguenti stringa di formato:[[File:StackMemory.png|miniatura|446x446px|Salvataggio variabili sullo stack]]<source lang="c"> printf ("\x10\x01\x48\x08_%08x-%08x-%08x-|%s|"); </source>
Riga 100:
* {{cita web|http://www.cert.org/books/secure-coding|programmazione sicura in C e C++|lingua=en}}
 
{{Portale|Sicurezzasicurezza informatica}}
 
[[Categoria:Tecniche di attacco informatico]]