XSS -princip a obrana Mozektevidi.net - Píše Olda Šálek.
Navigace:Mozektevidi.net ⇒ IT bezpečnost ⇒ XSS -princip a obrana
Aneb uvést návštěvníka v omyl. Stačí, aby se na webu objevil článek o prodeji webu. Dám příklad:
Majtej google se rozhodl prodat svůj podnik. Už ho nebaví podníkaní atd atd.. zdroj: google.com Jako odkaz bude adresa na XSS webu. Například google.com/q=google_prodava_svoji_domenu. Objeví se výsledky hledání uvedeného spojení. Na to nikdo nenaletí. Pokud by se ovšem ostatní písmo skrylo, případně by byl nápis větší mohlo by to zabrat. Příkladem budiž
/q=<strong>google_prodava_svoji_domenu</strong><small> Neukončený tag small shová nevhodný text. Vhodnější je nastavit bílou barvu textu (stejné jako pozadí), nebo celé zakomentovat <!--
.
iframe src="http://neco_nekde.cz" width=100% heiht=1000px frameborder=0 scrolling=no />, v iframe může být cokoliv
JS moc neovládám, o této technice jsem se dočetl jinde. Javascript umí manipulovat s obsahem stránky. Každý html objekt má vlastnost (property) innerHTML. Následující kód ukazuje nahrazení celé stránky jinou stránkou: <script>document.body.innerHtml="<iframe src=http://neco_kdesi.cz/>"</script>
Hodnota cookie se zjištuje přes dokument.cookie. V cookies jsou hesla, id, soukromá data. Vše se dá ukrást přes XSS. zive.cz bylo hacknuto přes xss. email na seznamu seznamu byl hacknut přes xss.
JS je téměř všemocný, umí totiž během přihlašování po vyplnění hesla odeslat informace ven.
l=w.document.forms[0].login.value resp. p=w.document.forms[0].password.value.. Jména položek závisí na konkrétnín formu.
Kontrola všech vstupů přes htmlspecialchars ent quotes. Kontrola všech výstupů (nějaké bezpečné vstupy můžou dát nebezpečný výstup. Pozor na apostrofy, %, ;, &, +, -. Existují ovšem případy, kdy je je možné xss za pomoci hexa znaků. Neklikat na podezřelé odkazy v emailu. Uživatelé jsou prakticky bezmocní, pomůže vypnutí JS. Jenže většina webových aplikací je na JS závislá, tudy cesta nevede. Jak jsme se přesvědčili, všude číhají hrozby Cross-site scriptingu.