linux user group brescia

immagine del castello

Archivio della mailing list

R: Archivio di /var/log/wtmp

Mav mcbain a tiscalinet.it
Dom 5 Nov 2000 12:49:22 UTC
Enrico Colombini wrote:
> 
> > Mi rendo conto che è un argomento delicato (soprattutto per una ML
> >pubblica) ma... sapresti spiegarmi cosa cavolo è un "exploit" o come è
> >possibile sfruttare un buffer overflow ?
> 
> int InputNome(void)
> {
>   char nome[150];
>   printf("Nome: ");
>   gets(nome);
>   ...
> }
> 
> Il programmatore (pigro o mediocre) ha previsto 150 caratteri per contenere
> il nome, piu' che sufficienti... a meno che qualcuno non decida di
> scriverne di piu', nel qual caso i rimanenti 'sfondano' il buffer nome[] e
> possono sovrascrivere altre variabili o l'indirizzo di ritorno di una
> funzione. In quest'ultimo caso, scegliendo accuratamente i caratteri, nel
> momento in cui la funzione cerca di ritornare (usando l'indirizzo che c'era
> nello stack) e' possibile eseguire un jmp (goto) al punto desiderato del
> programma oppure far eseguire del codice arbitrario.
> 
per informazioni sui bof puoi leggere Phrack 49, l'articolo di Aleph1:
Smashing the stack for fun and profit, oppure su bfi (www.s0fptj.org) n.
6 l'articolo di SirCondor
Inoltre negli ultimi tempi oltre ai bof vi sono i format bug, che sono
tipo: printf(s) 
mentre la versione corretta sarebbe printf("%d", s). 
Per capire meglio gli articoletti serve una conoscenza di base di asm,
cmq sono ben fatti
ciao 	
	carlo bertoldi



Maggiori informazioni sulla lista Lug