Informacijos apsauga .LT » Blog Archive » Kaip pavogti BLOG’ą iš blogas.lt
Kaip pavogti BLOG’ą iš blogas.lt
2007-10-07 12:38 parašė Audrius
1 balas2 balai3 balai4 balai5 balai (Įvertinimai: 2. Vidutinis balas: 5 iš 5 galimų. Įvertink ir Tu.)
Loading ... Loading ...

Vakar buvau operoje “Bohema” kongresų rūmuose. Viskas būtų kaip ir gerai, jei ta opera nebūtų itališkai arba bent jau turėtų lietuviškus subtitrus apačioje. Kai aš itališkai žinau vos kelis žodžius (pizza, grazie, cagna) ir tuos daugiau iš filmų, tai kas ir ką dainuoja susigaudžiau nedaug. Nelabai perpatau aktorių vaidinamų personažų jausmus ir išgyvenimus, bet kaip visuomet, kažkas buvo apie nelaimingą meilę. Šiaip visai patiko vaidyba ir kelios masinės scenos, bet tai ir yra viskas ką gero galiu pasakyti apie “Bohemą”. Nesu operinio dainavimo mėgėjas ir nesimėgauju juo taip kaip pvz. Chemical Brothers, todėl vien tai, kad ten yra opera ir nesvarbu kokia kalba, manęs labai nesužavėjo. Na jo, vat toje spektaklio vietoje iš to veikėjo išsityčiojo. Bet tai žinojau tik iš trumpo spektaklio aprašymo. Tai buvo pirmas ir paskutinis kartas, kai ėjau į spektaklį kalba, kurios nemoku. Tiesa, tokių nesuprantančių kalbos buvo kokie 99% žiūrovų salėje, tik nežinau kiek iš jų spektaklyje rado tiek, kiek tikėjosi. Aš nesijaučiu stipriai praplėtęs akiratį, tad po poros savaičių turbūt jau pamiršiu apie ką buvo visas veiksmas. Na bet užteks apie kultūrines pramogas už didelę kainą ir laikas papasakoti ką žadėjau, t.y. kaip pavogti BLOG'ą iš blogas.lt. Pradėsiu nuo šiokios tokios trumpos istorijos ir teorijos. Pats web'as atsirado kaip terpė, skirta dalintis informacija (moksliukai juo naudojosi pasidalinti fizikos dokumentais) ir jo veikimo principas buvo labai paprastas. Daug paprastesnis nei yra dabar. Vėliau, pvz. dėl ribotų HTML galimybių ir statiškumo, papildomai buvo sukurta įvairių kitų technologijų, pvz. skriptai. Taip pat dėl to paprastumo HTTP protokolas neturi realizuoto vartotojo sesijos išlaikymo, t.y. kiekviena užklausa serveriui tolygi naujam vartotojui. Dėl pastarosios priežasties atsirado visokie patobulinimai lankytojų įsiminimui. Vienas iš tokių patobulinimų yra cookies. Cookies vartotojo kompiuteryje saugo įvairius parametrus ir jų reikšmes, kurias perduoda web serveris vartotojui. Tuo tarpu naršyklė, kiekvieno kreipinio į web serverį metu, tuos parametrus su reikšmėmis gražina atgal serveriui. Pagal tas gautas reikšmes serveris ir atpažįsta sugrįžusį vartotoją. Tai tik vienas iš būdų atpažinti sugrįžusį vartotoją ir blogas.lt naudoja būtent jį. T.y. po to, kai į blogas.lt suvedi savo prisijungimo vardą ir slaptažodį, iš serverio į kompiuterį atkeliauja trys pagrndiniai cookies parametrai: username=zzzzzz; password=xxxxxx; u_id=yyyyyy. Parametras username atitinka prisijungusio vartotojo vardą, password yra šifruotas prisijungusio vartotojo slaptažodis (panašu, kad algoritmas nėra sudėtingas), o u_id yra kažkoks unikalus to vartotojo identifikatorius. Štai pagal šiuos tris parametrus blogas.lt ir identifikuoja prisijungusį vartotoją ir atitinkamai suteikia jam prieigos teises prie jo BLOG'o. Taigi, belieka serveriui užklausos metu pakišti svetimus šiuo tris parametrus ir blogas.lt tave priims kaip visiškai kitą vartotoją ir nepaprašys įvesti jokių prisijungimo duomenų. Bet kurio vartotojo parametrus username ir u_id galima paprastai sužinoti, tačiau dar lieka parametras password, kurio reikšmę žino tik tikrasis vartotojas ir galbūt blogas.lt. Čia esmė tame, kad įsilaužėliui visiškai nebūtina žinoti tikrosios password reikšmės ir pakanka gauti šifruotą jo reikšmę, kuri turi būti perduota į blogas.lt serverį kartu su užklausa. O šią reikšmę galima paprastai iš vartotojo pavogti ir tą galimybę suteikia… pati blogas.lt sistema. Tam tereikia joje susikurti savo BLOG'ą ir priversti į jį užeiti prisijungusį vartotoją. Kaip ir minėjau, ką tiksliai savo BLOG'e reikia patiuninguoti nerašysiu, bet papasakosiu patį principą ir kodėl yra didelė tikimybė, kad į tą BLOG'ą užeis prisijungęs kitas blogas.lt blogeris. Kaip ir turi būti, viskas čia yra paprasta. :) Šiuo atveju blogas.lt turi visas cookies vagystei tinkamas savybes. Pirmoji, ypač nervinanti ilgesnius įrašus rašančius vartotojus, yra ta, kad jei prisijungimo metu neuždedi štai šios varnelės, tai blogas.lt po tam tikro laiko tavęs nebepriims atgal į sistemą kaip autentifikuoto vartotojo, nors tu po ją ir naršai aktyviai.

Čia yra netinkamai realizuotas sesijos išlaikymas. Įsivaizduok vartotoją, kuris rašo ilgą įrašą ir kai paspaudžia “išsaugoti”, jį tiesiog permeta į titulinį blogas.lt puslapį ir paprašo iš naujo autentifikuotis. Įrašas, žinoma, neišsaugomas. Vartotojas susinervina. Kaip tokiu atveju nervinasi Gravel lyderis Sinickis, galite paskaityti čia. Jam įrašas neišsisaugojo pagal aprašytą situaciją. Šis blogas.lt trūkumas verčia vartotojus uždėti varnelę ir visuomet būti prisijungus savo vardu prie blogas.lt. O tai reiškia, kad nesvarbu ką tu darytum blogas.lt sistemoje ar kažką tvarkytum savo BLOG'e, ar tiesiog skaitytum svetimus BLOG'us, tačiau kiekvienos bet kokios užklausos į blogas.lt metu, visuomet bus perduodami tavo trys esminiai cookies parametrai, pagal kuriuos esi identifikuojamas!!!

Antroji, cookies vagystei tinkama savybė yra ta, kad blogas.lt sistemoje BLOG'o savininkas gali redaguoti savo BLOG'o HTML kodą be jokių apribojimų. O tai leidžia patalpinti tą kodą, kuris ir įvykdo į BLOG'ą užsukusio lankytojo cookies vagystę. Tai ir yra dvi esminės blogas.lt savybės, stipriai palengvinančios darbą įsilaužėliui. Naršyti prisijungusius vartotojus verčia pati blogas.lt sistema, o įsilaužėliui tereikia tik tinkamai pakeisti savo BLOG'o kodą ir belieka sugalvoti metodą, kaip į jį įvilioti prisijungusį vartotoją. Taigi, jei po svetimus bolgas.lt BLOG'us naršai prisijungęs savo vardu, tai kiekvieną kartą, kai tu užeini į svetimą BLOG'ą, iš tavęs galima pavogti tris reikiamus cookies parametrus ir prisijungti prie tavo BLOG'o. Tiesa, šis BLOG'as yra “švarus”, tad nebijok į jį sugrįžti. Gero naršymo pas kitus. :)

» Temos: Apie viską, Blogietis
» Žymėtis: kaip.tik.ten :: topix.lt :: del.icio.us


Komentarai
  1. 2007-10-07 13:30 Slave rašė:

    Problema tikrai egzistuoja, tačiau bus pašalinta kelių dienų laikotarpyje. Prieš tai panaudojome labai paprastą triuką apsaugai, tačiau liko labai daug nepatenkintų vartotojų.. :-) Dabar turime patikimesnį sprendimą ir visi būsime saugūs. Beje, geras straipsnis, o kartu ir puiki paskata, kad problemą reikia spręsti kuo skubiau :)
    Sėkmės.

  2. 2007-10-07 13:42 tranzas rašė:

    Tik ką nuėjau į tavo profailą, kad galėčiau nusiųsti nuorodą tau į šį post'ą bet žiūriu jau pats spėjai pamatyti. Kai pataisysit, tuomet papasakosiu ir nutylėtas detales, t.y. kaip yra pavagiami cookiai. Žinoma, sprendimas bus paprastas. Beje, kai kas nors sako "būsime saugūs" ar "esame saugūs" tai man taip ir pradeda nagus niežėti… :)

  3. 2007-10-07 13:57 Slave rašė:

    Keep it simple, stupid. Kaip pavagiami jie aš žinau ir jau spėjau išbandyti - powerful! :) Kažkada ir LiveJournal su panašia problema buvo susidūręs. Berods, jie subdomenus panaudojo, kaip problemos sprendimo būdą :-)

  4. 2007-10-07 14:28 tranzas rašė:

    Kaip pavagiami cookiai papasakosiu ne tau, o kitiems čia besilankantiems, stupid. :) Kad žinai kaip tai padaroma, jau supratau iš pirmojo komentaro. O šios problemos sprendimo variantų yra daug. Vienas paprastesnių būtų cookies šifravimas panaudojant tik tam vartotojui būdingus parametrus. Pvz. jo IP adresą, naršyklės tipą ir kokį nors daug sunkiau sužinomą parametrą, kuris saugomas tik pas jus DB, bet ne pas vartotoją naršyklėje (pvz. vartotojo įvesta spec. raktinė frazė registracijos metu). Serveriui gavus cookius bandai juos tais parametrais dešifruoti. Jei cookiai neišsišifruoja, tuomet atjungi lauk vartotoją iš sistemos ir prašai iš naujo jo prisijungimo duomenų. Žinoma, toks būdas reikalautų papildomų serverio resursų šifravimui/dešifravimui. Kitas daug paprastesnis variantas būtų tiesiog sekti pvz. ar cookiai po paskutinio karto atkeliavo iš to pačio IP. Jei IP skiriasi, tuomet atjungi vartotoją ir prašai prisijungti iš naujo. Tiesa, šis būdas nebūtų labai saugus, nes IP iki tam tikros ribos yra padirbami ir ką nors papostinti į svetimą BLOG'ą taip pat būtų galima (aišku atsakymas atgal nebegrįžtų). Taip pat dar galima nenaudoti cookių taip, kaip jie naudojami dabar. Tik čia jau reikės daugiau pavargti, nes turbūt reikės sistemą stipriai pertvarkyti. Apsaugos lygmenis blogas.lt galima realizuoti kelis ir skirtingus. Variantų daug ir nebūtinai sudėtingų, bet sprendimą pasirinkti teks patiems.Redagavo tranzas 2007-10-07 14:31

  5. 2007-10-07 14:54 osam rašė:

    Labai įdomus straipsnis. NEt neįtariau apie bėdas. Ačiū už perspėjimą.

  6. 2007-10-07 16:41 shiny rašė:

    oj. scary! niekad nebuciau pagalvojus kad viskas taip paprasta (: tai dabar reiks man naktim nemiegot galvojant kaip kazkas vagia mano blog'a

  7. 2007-10-07 16:53 vampiriukia rašė:

    Mhhh… įdomiai čia. Ačiū už info :}

  8. 2007-10-08 15:15 tranzas rašė:

    Justinai, ar įdėjai galimybę iš naujo identifikuotis, kai pasikeičia IP adresai tam pačiam vartotojui? Noriu vakare aprašyti kaip tie cookiai gali būti nugvelbiami… :)

  9. 2007-10-13 23:18 UZUZZ rašė:

    duok 0deisu

  10. 2007-10-14 15:40 tetasigita rašė:

    gal pusmetį, todėl savo turimame kitame bloge, kuris yra kitu vardu padariau save administratoriumi ir per kitą blogą rašydavau senąjį. Ir dar, į tetaSigitą neįeidavau tik iš namų, iš darbo patekdavau, tai darbe ir padariau save administratoriumi savajam blogui valdyti.

  11. 2008-04-14 22:58 Cross Site Scripting arba XSS | Informacijos apsauga .LT | Apie viską rašė:

    [...] vidiniai router’iai), perimamos naršymo sesijos, admino teisės, pavagimai ištisi blogai ir t.t. Žodžiu, galimybių daug. Jei koks nors programuotojas sako, kad čia š…, o ne [...]

  12. 2008-04-15 10:38 elt.lt » Blog Archive » Cross Site Scripting arba XSS rašė:

    [...] vidiniai router’iai), perimamos naršymo sesijos, admino teisės, pavagimai ištisi blogai ir t.t. Žodžiu, galimybių daug. Jei koks nors programuotojas sako, kad čia š…, o ne [...]


Palikite komentarą