100 likes | 311 Views
Tinkl ų saugumas. Alius Tamkevičius Rimantas Rusakevičius. Sql injekcija. Kas tai yra? Viena iš populiauriausių duomenų bazės atakavimo priemonių Kaip ir kada tai nutinka Tokios saugumo spragos atsirando dėl programuotojų nemokšiškumo arba skubėjimo. Apsaugos būdai.
E N D
Tinklų saugumas Alius Tamkevičius Rimantas Rusakevičius
Sql injekcija • Kas tai yra? • Viena iš populiauriausių duomenų bazės atakavimo priemonių • Kaip ir kada tai nutinka • Tokios saugumo spragos atsirando dėl programuotojų nemokšiškumo arba skubėjimo
Apsaugos būdai • Naudoti funkcijas, kurios atpažįsta meta simbolius • mysql_real_escape_string - išmeta specialius simbolius iš gautų duomenų • Vengti viengubų kabučių • Įvedamų duomenų tikrinimas • Galima išjungti apache konfiguracijoje gpc_magic_quotes
Buvo naudojama: PHP programavimo kalba SQL kalba MySQL serveris PHP servisas Apache serveris Operacinės sistemos: Windows Ubuntu DB sukūrimas PHP skripto rašymas Testavimas Laboratorinis įgyvendinimas
Laboratorinis įgyvendinimas • SQL sakinys, kai bandoma prisijungti, naudojant teisingą prisijungimo vardą • SELECT * FROM ts WHERE name = 'admin' AND pass = 'admin‘ • SQL sakinys, kai naudojama SQL injekcija • SELECT * FROM ts WHERE name = '' or '1'='1' -- '' AND pass = ''
Realaus gyvenimo atvejai • Surasti keli puslapiai: • http://vz.lt • http://kinas.info • Pažeidimų paieška buvo vykdoma 2 būdais: • Atsitiktinai atsidarius puslapius • Ieškoma pažeidimų turinio valdymo sistemose (TVS)
Vz.lt puslapis • Šiame puslpayje prie adreso kintamojo pridėjus kabutę, gauname klaidingą rezultatą, kuris atvaizduoja duomenų bazės lentelės stulpelų pavadinimus
kinas.info puslapis • Šiame puslapyje nėra duomenų tikrinimo, gaunamų GET metodu, todėl gauname sql klaidą
Ką išmokome? • Pagilinome žinias apie SQL injekcijas • Supratome, kad nėra lengva įsilaužti į DB naudojant tik SQL injection • Norėdami išmokti daugiau apie SQL injekcijas, galite užeiti į puslapį http://sqlzoo.net/hack/