Cross-Site Scripting (XSS) Bc. Aleš Joska Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky 3. duben 2018 Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 1 / 16
Obsah prezentace 1 Základní představení a záměry Cross-Site Scripting 2 Dělení Cross-Site Scripting 3 Metody injektáže skriptů a obcházení bezpečnostních filtrů 4 Ochrana před Cross-Site Scripting 5 Praktická ukázka Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 2 / 16
Co je to Cross-Site Scripting? Metoda narušení webových stránek pomocí různých bezpečnostních chyb, díky kterým může útočník podstrčit nic netušícím návštěvníkům vlastní a více méně nechtěný kód. Díky tomu může útočník například: Znefunkčnit webové stránky napadené oběti Poupravit napadené stránky (např. přidat přesměrování nebo reklamy) Extrahovat údaje návštěvníků webových stránek Propašovat škodlivý software do počítače návštěvníků Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 3 / 16
Co je to Cross-Site Scripting? Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 4 / 16
Co je to Cross-Site Scripting? (a) Informace o Cross-Site Scripting na OWASP (b) Zranitelnosti redakčního systému WordPress Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 5 / 16
Rozdělení Cross-Site Scripting Persistentní/Stored XSS Propojení exploitu s databází webového serveru Neperzistentní (dočasný) / Reflected XSS Využití exploitu umístěného přímo v URI DOM (Document Object Model) based XSS Porobný Reflected XSS Využívají DOM metody v těle skriptu Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 6 / 16
Co vše se dá provést pomocí XSS? Krádež session Záměna přihlašovacího formuláře Změna obsahu webové stránky Přesměrování uživatelů Zjištění navštívených stránek Extrakce vyhledávaných frází Zjištění, kde je uživatel přihlášen Útok na Intranet Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 7 / 16
Metody injektáže skriptů Obecný přístup Skripty v externích souborech In-line skripty Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 8 / 16
Metody injektáže skriptů Self-Contained JS Injektáž skriptu skrz SVG soubory Injektáž skriptu skrz PDF soubory Vložení skriptu skrz CSS Injekce pomocí Flash Injekce skrz chybu 404 Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 9 / 16
Bypassing kódu Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 10 / 16
Obcházení bezpečnostních filtrů Využití střídavě malých a velkých písmen Prokládání speciálními znaky (�) nebo tagy Využití podmíněných komentářů Využití kódování Využití obfuskování Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 11 / 16
Obrana proti Cross-Site Scripting Obrana na straně webového prohĺıžeče Úplné zablokování JS Zamezení možnosti cross-site scriptingu by se měla postarat strana serveru. Obrana na straně webové aplikace Odfiltrovávání nebezpečných znaků se zvláštním významem, které umožňují injektáž skriptů htmlspecialchars() Content Security Policy Bezpečnostní prvek pro webové aplikace Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 12 / 16
Hledání zranitelnosti Penetrační nástroje (např. OWASP ZAP, Nessus XSS) Specializované nástroje pro vyhledávání XSS (např. XSSer) Doplňky pro prohĺıžeče (např. XSS-me, TramperData) Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 13 / 16
Praktické ukázky Praktické ukázky Cross-Site Scripting Dostupné a stažitelné ZDE Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 14 / 16
Shrnutí Útočníci mohou v prohĺıžeči oběti spouštět skripty. Mohou tak odcizovat uživatelské relace, deformovat stránky, vkládat nepřátelský obsah, přesměrovávat uživatele, vkládat malware atd. Nebezpečnost této zranitelnosti je velice podceňována, což je dokázáno jak statisticky, tak různými archívy zranitelností a webový návrháři někdy tuto chybu, bud z důvodu nedostatku času, nebo z nedostatků zkušeností ignorují. Zabránění XSS je relativně jednoduché. Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 15 / 16
Děkuji za pozornost Question time? Aleš Joska Cross-Site Scripting (XSS) 3. duben 2018 16 / 16