Etyczne hakowanie - skrypty między witrynami

Cross-site scripting (XSS) to atak polegający na wstrzyknięciu kodu, który umożliwia atakującemu wykonanie złośliwego kodu JavaScript w przeglądarce innego użytkownika.

Atakujący nie celuje bezpośrednio w swoją ofiarę. Zamiast tego wykorzystuje lukę w witrynie internetowej, którą odwiedza ofiara, aby skłonić witrynę do dostarczenia mu złośliwego kodu JavaScript. Dla przeglądarki ofiary złośliwy JavaScript wydaje się być legalną częścią witryny, a zatem witryna działała jako niezamierzony wspólnik dla atakującego. Ataki te mogą być przeprowadzane przy użyciu HTML, JavaScript, VBScript, ActiveX, Flash, ale najczęściej używanym XSS jest złośliwy JavaScript.

Ataki te mogą również gromadzić dane z przejęcia konta, zmiany ustawień użytkownika, kradzieży / zatrucia plików cookie lub fałszywych reklam i tworzyć ataki DoS.

Przykład

Weźmy przykład, aby zrozumieć, jak to działa. Mamy wrażliwą stronę internetową, którą otrzymaliśmy przezmetasploitablemaszyna. Teraz przetestujemy pole, które jest podświetlone czerwoną strzałką pod kątem XSS.

Przede wszystkim tworzymy prosty skrypt ostrzegawczy

<script>  
   alert(‘I am Vulnerable’)  
</script>

Wytworzy następujący wynik -

Rodzaje ataków XSS

Ataki XSS często dzielą się na trzy typy -

  • Persistent XSS, gdzie złośliwy ciąg pochodzi z bazy danych witryny.

  • Reflected XSS, gdzie złośliwy ciąg pochodzi z żądania ofiary.

  • DOM-based XSS, gdzie luka występuje w kodzie po stronie klienta, a nie w kodzie po stronie serwera.

Zasadniczo skrypty między witrynami są wykrywane przez vulnerability scanners abyś nie musiał wykonywać całej pracy ręcznej, umieszczając na niej JavaScript jak

<script>  
   alert('XSS') 
</script>

Burp Suite i acunetix są uważane za najlepsze skanery podatności.

Szybka wskazówka

Aby zapobiec atakom XSS, pamiętaj o następujących kwestiach -

  • Sprawdź i zweryfikuj wszystkie pola formularza, takie jak ukryte formularze, nagłówki, pliki cookie, ciągi zapytań.

  • Wdrażaj rygorystyczną politykę bezpieczeństwa. Ustaw ograniczenie liczby znaków w polach wejściowych.