
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Aprile 2001 ml@sikurezza.org Soggetto: Re: format string Mittente: Kundera Data: 22 Apr 2001 12:28:33 -0000
At 17.21 20/04/01 +0200, you wrote:
>Ciao,
>
>Stò leggendo un articolo che spiega il funzionamento delle vulnerabilità
>basate sulle format string.
>
>Sul documento c'è scritto che la stringa di formattazione del printf (e dei
>comandi della stessa famiglia) viene caricata sullo stack e da quello che
>ho capito è proprio per questo che si riesce ad exploitare. Ho scritto 2
>righe in C per provare, ma non ho avuto i risultati attesi.
>Questi sono il sorgente C e i risultati:
>
>----------prog.c-----------
>main()
>{
>unsigned char buff[16];
>memset(buff,'\xCC', sizeof(buff));
>
>printf("\nAAAAAAAA__%08x.%08x.%08x.%08x.%08x.%08x.%08x\n");
>}
>----------fine prog.c-----------
>
>
>$ gcc prog.c -o prog
>$ prog
>
>AAAAAAAA__cccccccc.cccccccc.cccccccc.cccccccc.bffff9e8.400349cb.00000001
>$
>
>Il parametro di formattazione %08x stampa 4 byte e fa avanzare il puntatore
>dello stack.
>La stampa comincia dalla posizione attuale dello stack e prosegue verso
>l'alto della pila.
>
>Quello che non mi torna è che se la stringa di formattazione viene messa
>nello stack dovrebbe essere stampata prima della variabile buff, in quanto
>inserita dopo (mi aspettavo di trovare una serie di 8 byte \x41
>corrispondente agli 8 caratteri A seguiti dal resto della stringa di
>formattazione). Invece, come si può vedere nel risultato, i primi byte
>stampati sono proprio quelli di buff e la stringa di formattazione non c'è.
Secondo me non c'e' perche' nello stack non c'e' la stringa ma l'indirizzo.
E poi l'indirizzo da dove vuoi visualizzare la memoria devi fornirlo cosi' :
printf("\n\x01\x13\x81\b1__%08x.%08x.%08x.%08x.%08x.%08x.%08x\n");
cioe' l'indirizzo 0xb1811301 .
<--Kundera-->
--Digital Skull BBS Sys0p--
--+39-2-93163367 24h/24h 8N1 Ansi--
--kundera@tiscalinet.it--
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005