James Gosling di Sun Microsystems ha sviluppato il linguaggio di programmazione Java nel 1995. Si tratta di un obiettivo generale, C + + linguaggio derivato utilizzato in molti siti web , sotto forma di applet e servlet che estendono le funzionalità di server web . Un buffer overflow è un bug di programmazione , intenzionale o meno, che inizia scrivendo a celle di memoria adiacenti , che è normalmente consentita per motivi di sicurezza . Java è in genere un po ' al sicuro da buffer overflow perché ha " controllo limiti", che crea automaticamente le eccezioni , che rende sicuro il codice non può accedere accidentalmente memoria adiacente non autorizzata . Tuttavia, l'accesso amministrativo al server Java può forzare Java per eseguire codice esterno che può costringere buffer overflow . Istruzioni
1
accesso Java Native Interface ( JNI ), sulla Java Virtual Machine in esecuzione di JavaScript . Questo è l'unico modo per causare un overflow di memoria in Java , con l'introduzione di codice esterno , non gestito , come in C + +
. 2
Aprire o creare un nuovo script nel database. Creazione di uno script standalone è meglio isolare la sceneggiatura di overflow del buffer , in modo da poter facilmente annullare l' effetto che provoca
3
incolla questo script : .
Char buf [ 64 ] , in [ MAX_SIZE ] ; printf ( " Inserisci il contenuto del buffer : \\ n "); read ( 0 , a , MAX_SIZE - 1) ; printf (" byte da copiare : \\ n"); scanf ( " % d " ; , & byte ); memcpy ( buf , in , byte ) ;
quindi eseguirlo. Nel browser , comparirà la richiesta " byte da copiare " e inserire un numero arbitrariamente grande . Questo esempio di codice si basa su input dell'utente per causare l'overflow .