Cross-Site Scripting lub atak XSS

Istnieje wiele różnych ataków komputerowych, na które jesteśmy narażeni, w tym samouczku omówimy te Cyberatak Cross-Site Scripting (XSS). Atak ten polega na wstrzyknięciu niechcianego kodu do aplikacji internetowych. Dzięki temu atakujący może zmienić zachowanie aplikacji, co może uszkodzić dane, utracić informacje, odmówić usługi (DoS) itp.

Na przykład atakujący może sprawić, że podatna strona internetowa przekieruje ruch na własną, co będzie miało złe konsekwencje zarówno dla właściciela strony, jak i użytkowników.

Jakie to może mieć konsekwencje?

Zróżnicowany i poważny, ale wyobraź sobie, że Facebook ma tego typu lukę, atakujący ją wykorzystuje i fałszując oryginalną stronę tworzy klon tej strony, emulując w ten sposób Facebooka. Użytkownicy logują się, a atakujący zachowuje ich dane uwierzytelniające, a następnie po prostu przekierowuje ich na oficjalną stronę, więc użytkownik rzadko się o tym dowiaduje.

Gdzie możemy sprawdzić, czy strona internetowa jest podatna na ataki?

Możesz to zrobić na wiele sposobów, ale najczęstszy jest na forach lub w miejscach, gdzie zezwalają na komentarze w przypadku trwałego ataku, lub w adresach URL w przypadku nietrwałego.

Jaka jest przyczyna tej luki?

Ponieważ strony nie weryfikują poprawnie danych wprowadzanych przez użytkowników, a także dane wyjściowe nie są kodowane. Jeśli więc masz stronę internetową zawsze nie ufasz użytkownikom weryfikującym swoje dane, języki programowania już przynoszą funkcje, które pozwalają, na przykład na funkcję strip_tag PHP usuwa znaczniki HTML (ale spójrz na swoje zastrzeżenia).

Rodzaje ataków XSSTyp nietrwały lub lustrzanyW tym ataku ofiara otrzymuje zmanipulowany adres URL, który będzie zawierał kod do wstrzyknięcia jako parametr.

Trwały lub bezpośredni typWprowadzone przez użytkownika dane będą przechowywane na serwerze, co będzie miało wpływ na wszystkich użytkowników, którzy łączą się z siecią.

Zobaczymy przykłady tego, jak od teraz będzie przeprowadzany atak.

NotatkaCelem samouczka jest umożliwienie przetestowania aplikacji internetowych, które tworzysz lub osób, które udzielają Ci uprawnień, a nie po to, aby wykonywać „złośliwe” działania.

1. Przykład nietrwałego XSS


Chcemy przekierować osobę na stronę, którą kontrolujemy, ale aby uwierzyła, że ​​odwiedza oryginalną stronę, możemy wysłać jej e-mail ze skróconym linkiem (lub nie), który ma następującą treść:
 http://www.paginadeseada.com/?search=
Ten przykład pokazuje, jak łatwo można wykorzystać lukę tego typu.

2. Trwały przykład XSS


W komentarzu możemy umieścić kod HTML lub JavaScript, który jest zapisywany na serwerze i aby za każdym razem, gdy strona zawierająca komentarz jest ładowana, przekierowuje na naszą stronę internetową, w tym przykładzie można wstawić następujący kod HTML:
 
Zwracamy się do innego przykładu niż te, które widzieliśmy teraz. Teraz zobaczymy przykłady użycia DVWA, aplikacji internetowej stworzonej z PHP i MySQL. Ta aplikacja jest już dostępna w Metasploitable 2, którą można zamontować na maszynie wirtualnej.

Pozwoli nam to na testowanie różnych ataków internetowych, a także będziemy mogli modyfikować stopień bezpieczeństwa (dla przykładów używamy niskiego), będziemy też mogli zobaczyć, jakie kody PHP są atakowane, dzięki czemu zobaczysz, co nie do wykorzystania w kodach.

3. Przykłady XSS odzwierciedlone DVWA


W tej sekcji zobaczymy kilka przykładów, zacznijmy. Jeśli podamy normalne imię, to samo Test, aplikacja działa dobrze, zobaczmy obrazek:

POWIĘKSZAĆ

Jeśli jako nazwę wpiszemy następujący kod:

 Test
Widzimy, że nazwa staje się pogrubiona (może na zdjęciu nie jest zbyt dobrze doceniana):

POWIĘKSZAĆ

A jeśli wprowadzimy dane wejściowe, czy to zadziała? Aby to przetestować, wstawiamy następujący kod:

 
I widzimy na poniższym obrazku, że to zadziałało:

POWIĘKSZAĆ

Przejdźmy do Przechowywane XSS (przechowywane).

4. Przykłady zapisanych DVWA XSS


Przeprowadzimy kilka proof of concept, pierwsze co zrobimy to wstawimy krótki tekst wraz ze skryptem jako komentarz, zobaczmy co się stanie, skrypt jest jak najprostszy, jest to:
 Witam i do widzenia.

POWIĘKSZAĆ

Gdy wejdziemy tak jak na poprzednim zdjęciu, klikamy na Podpisz do księgi gości, komentarz zostaje wysłany, nic dziwnego się nie dzieje, ciąg tekstowy jest widoczny, nie ma śladów skryptu, co widać poniżej:

POWIĘKSZAĆ

Więc nic się nie stało? Cóż, sprawdźmy to, odświeżmy stronę i widzimy, że alert przeskakuje:

POWIĘKSZAĆ

Możesz również docenić, że komentarz ma tylko Hello, dlatego skrypt został umieszczony między tekstem, abyś mógł zobaczyć, że go czyta, zatrzymuje się na alercie i po kliknięciu OK otrzymasz resztę tekstu i brakowało reszty strony (podobnie jak zielone linki, które znajdowały się pod częścią z komentarzami).

Teraz wstawimy formularz w komentarzu, widać, że liczba znaków, które można wprowadzić, jest ograniczona do 50, ponieważ będziemy sprawdzać kod HTML obszaru tekstowego komentarza (kliknij prawym przyciskiem myszy, Sprawdź):

POWIĘKSZAĆ

Widzimy maksymalna długość = „50”, dodamy jeszcze 0 na końcu, pozostając w 500, jak widzimy poniżej:

POWIĘKSZAĆ

A teraz skomentujemy następujący kod HTML:

 Napisz swoje imię:
Widzimy, że już to akceptuje, więc dajemy Wpisz księgę gości i widzimy, co następuje:

POWIĘKSZAĆ

Formularz został wstawiony, jak zweryfikowaliśmy. Na koniec, jeśli chcesz ćwiczyć na średnim poziomie w przechowywanym XSS, wypróbuj następujące rozwiązania:

1. Zmień maksymalną liczbę znaków, którą akceptuje pole Nazwa, tak jak robiliśmy to wcześniej.

2. Dodaj następującą nazwę:

 Test 

3. Jako komentarz umieść to, co chcesz.

4. Wyślij komentarz i zaktualizuj ekran, zobaczysz, że jest zapisany.

Jeśli chcesz usunąć plik cookie, zmieniłbym skrypt na następujące:

 
Zobaczysz następujące elementy:

Następnie zostawiam link do frameworka o nazwie XSSer, który pomoże nam wykrywać, wykorzystywać i zgłaszać luki w zabezpieczeniach XSS.

Na swojej stronie pojawia się tak, jak jest zainstalowany (w Kali Linux 2016 już jest) i przykłady użycia.

Widzieliśmy możliwości, jakie ma osoba atakująca, gdy zostanie przedstawiona podatna strona internetowa, uniknięcie tych ataków nie jest trudneDziś w dowolnym języku programowania mamy funkcje, które ułatwiają nam życie. Ważne jest, aby przed uruchomieniem strony internetowej sprawdzić te błędy, ponieważ może to zrujnować Twój biznes.

Jeśli chcesz zobaczyć samouczek, w którym ta aplikacja jest używana, ale przeprowadzane są inne rodzaje ataków: Pentesty z DVWA.

Na koniec zostanie podany link na wypadek, gdybyś chciał zobaczyć inny rodzaj ataku, który również dotyczy wstrzykiwania kodu: SQL injection.

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave