linux user group brescia

immagine del castello

Archivio della mailing list

R: Archivio di /var/log/wtmp

Enrico Colombini erix a mclink.it
Dom 5 Nov 2000 11:22:17 UTC
> 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.

  .Erix.




Maggiori informazioni sulla lista Lug