? Bufferoverløb og format string bugs er to metoder , hvorfra brugerne kan få kontrol over et program. Typisk findes i lavere niveau sprog som C eller C + + , begge er afhængige af en hacker evne til at manipulere brugerens input til at gøre et program udføre på andre måder end det var hensigten at . Bufferoverløb er afhængige af en manglende sikkerhedsforanstaltninger omkring bruger-input, mens formatstreng bugs opstår inden den faktiske input /output funktionalitet af et programmeringssprog. Forstå , hvordan hver enkelt arbejder kræver en forståelse af, hvorfor de forekommer i koden. Bufferoverløb
bufferoverløb kan opstå under udførelsen af programmet , når en buffer datastruktur beregnet til at håndtere brugerens input er givet for meget data til at håndtere. For eksempel kan en programmør erklærer en array struktur, der indeholder figurer til at tage i brugerens login- data. Programmøren kan vælge at begrænse størrelsen af array til 25 tegn . Hvis programmøren ikke lægge nogen sikkerhedsforanstaltninger på plads, kan brugeren indtaste en vilkårlig mængde data som en log -in navn. Når brugeren gør dette, de ekstra tegn ud 25 overskridelse af hukommelsesplads af array og korrupte data i tilstødende lagerpladser . Dette kaldes en bufferoverløb .
Bufferoverløb og Sikkerhed
Hackere kan udnytte bufferoverløb til at ændre stien til udførelsen af programmet . Hvis en hacker ved, hvordan et program virker, så hun ved også , hvad slags data er i nærheden karakter array. I C programmering , er variable og funktion referencer gemt i hukommelsen. Hvis en variabel eller funktion henvisning bosat nær array, kan en hacker overskridelse array på en sådan måde, at ændre værdien af en variabel , så det vil give log ind med falske legitimationsoplysninger. Hackeren kan også ændre en funktion, så det udfører skadelig kode, og giver hackeren i systemet.
Formatstrenge
A " format string" udgør en særlig argument leveres til input og output funktioner i C. for eksempel er " printf ( )" funktionen tager sit første argument et format streng, som beskriver, hvordan outputtet bør se til brugeren. Efter denne tager printf () funktion en variabel liste med argumenter , der repræsenterer data til output som formateret af format strengen . Denne følgende eksempel beskriver, hvordan et format string arbejder i sammenhæng med et format streng, der indeholder et format tegn ( "% d "), som betyder, at et heltal argument vil erstatte denne karakter i output : Hej
printf ( "Dette er det format strengen , efterfulgt af et heltal til at udskrive % d " , 56) ;
formatstrenge og Sikkerhed
Formatstrengfejl sikkerhedsspørgsmål opstår, når en bruger formår at input et format string indeholdende formatering tegn ikke er beregnet af programmøren . Når en printf () funktion kaldes , formatet snor og argumenterne efter den er skubbet ind i hukommelsen , og funktionen " walks" i hukommelsen , erstatte alle formatering tegn med værdier i tilsvarende lagerpladser . Hvis en hacker indsætter formatering tegn i en streng , kan hun muligvis læse værdierne af data placeret overalt i nærheden på stakken - og hvis hun kan læse stakken , hun ved, hvordan og hvor man kan ændre data og manipulere programafviklingen
.