Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Linux Buffer Overflow Tutorial

pretečeniu vyrovnávacej pamäte sú spoločné narušenia bezpečnosti pre počítačové systémy vyžadujúce vstup užívateľa ako prihlasovacie informácie . Buffer overflow nastane , keď premennú v kóde chcel držať informácie predložené užívateľom ( ako je prihlasovacie meno ) nie je dostatočne veľká . V tomto prípade sa naviac údaje zadané užívateľom " preteká " pridelené dostupnej pamäte . Táto udalosť , nazvaný " buffer overflow " , môže mať za následok dodatočné údaje prepísanie alebo úpravy údajov v iných programoch v pamäti . Tento príklad ukazuje, ako buffer overflow pracuje na úrovni kódu . Veci , ktoré budete potrebovať klipart textový editor
C /C + + kompilátor a IDE , ako je Microsoft Visual Studio
Zobraziť ďalšie inštrukcie Cestuj 1

Vytvorenie vyrovnávacej pamäti . Postupujte podľa tohto príkladu : Spojené

# include

int main ( ) { char

login_name [ 20 ] ;

printf ( " Zadajte login : " ) ;

scanf ( " % s " , login_name ) ;

printf ( " Buffer Overflow " ) ;

}

tento základný kód vytvorí pole znakov ( slovo , v podstate ) s názvom " login_name " , ktorá sa bude držať vstup užívateľa . Všimnite si , že " login_name " je iba 20 znakov . Program potom požiada o vstup užívateľa , a ukladá informácie do " login_name . "
2

Pretože sa pretečeniu vyrovnávacej pamäti . Zostaviť program a spustite ho . Ak budete vyzvaní , zadajte prihlasovacie meno , ktoré presahuje 20 znakov . Napríklad :

Zadajte login : TOTO JE DLHÁ vetu , ktorá obsadí dostupného priestoru v prihlasovacom PREMENNÉ

Hit . " Enter . " Výstupná správa bude tlačiť a program bude ukončený . Premenná prekročil dostupnej vyrovnávacej pamäte v " login_name " premenné . Otázkou potom je , čo sa stalo ?
3

Pochopiť , ako funguje pamäť počítača . Ako vstup užívateľa bola uložená v " login_name , " prebytok informácie ( ľubovoľný znak okrem 20 znakov ) , bol napísaný v pamäti mimo hraníc premenné . Tieto dáta musia byť uložené niekde . V tomto prípade , sa uloží do pamäte bezprostredne priľahlé k miestu , kde sa nachádza " login_name " premenné . Tým , že ide cez hranice prihlasovacie premenné , extra údaje ( úmyselne alebo neúmyselne ) prepisuje dáta bezprostredne vedľa premenné . To znamená , že hacker mohol v podstate prepísať kód , a zmeniť to, ako kód funguje, v podstate vlastný systém .
4

Uvedomte si , Linux zraniteľnosť . Linux je kódovaný v C /C + + , a mnoho z jeho základná funkcia vyžaduje manipuláciu znakových reťazcov . Avšak , mnoho moderných distribúcií Linuxu ochranu proti inštancií pretečeniu vyrovnávacej pamäte v miestach , kde sa vyžaduje vstup užívateľa , a to buď prostredníctvom ochrany zásobníka alebo dynamicky veľkosti znakové pole . Stále ešte existujú slabé miesta : buffer overflow USB exploit objavil v roku 2011 , je jedným z príkladov . V prípade USB , extra dlhý USB ID môže pretiecť systémovú premennú v Linuxe .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené