Hoe te schrijven van de Buffer Overflow in Java

James Gosling van Sun Microsystems ontwikkeld de programmeertaal Java in 1995. Het is een algemene doel C++ afgeleid taal die wordt gebruikt in vele websites in de vorm van applets en servlets die de functionaliteit van webservers uit te breiden. Een buffer overflow is een programmering bug, onbedoelde of anders begint dat schrijven naar aangrenzende geheugencellen, die normaal gesproken niet is toegestaan om veiligheidsredenen. Java is meestal enigszins veilig tegen buffer overflow omdat er "grenzen controleren," die automatisch uitzonderingen, die zorgt ervoor dat code kan niet per ongeluk toegang krijgen tot onbevoegde aangrenzende geheugen. Administratieve toegang tot de server van Java kan echter Java uitvoeren van externe code, waardoor een bufferoverloop kan afdwingen.

Instructies

1

Toegang Java Native Interface (JNI) op het uitvoeren van JavaScript Java Virtual Machine. Dit is de enige manier om een geheugen overflow veroorzaken in Java, door de invoering van externe, onbeheerde code, net als in C++.

2

Open of maak een nieuw script in de database. Maken van een zelfstandig script is het beste om te isoleren van de buffer overflow script, zodat u gemakkelijk ongedaan kunt maken van het effect dat het veroorzaakt.

3

Plak dit script:

char buf [64], in [maximumomvang];
printf ("Enter buffer inhoud: \n");
lezen (0, in, maximumomvang-1);
printf ("Bytes te kopiƫren: \n");
scanf ("%d", & bytes);
memcpy (buf, in bytes);

Voer het. In de browser, u moet worden gevraagd "Bytes kopiƫren" en typ een willekeurig groot getal. Dit codevoorbeeld is afhankelijk van de input van de gebruiker tot de overloop.