-: W tym
wykładzie i kilku następnych będziemy mówić o luce zwanej XSS.
XSS to skrót od Cross Site Scripting.
Ten rodzaj luki umożliwia
osobie atakującej wstrzyknięcie JavaScript na stronę.
Więc JavaScript jest językiem programowania.
Wykorzystując tę lukę, atakujący mógłby
wykonać kod napisany w JavaScript
na określonej
stronie w witrynie
internetowej.
JavaScript jest językiem po
stronie klienta, więc gdy kod jest
wykonywany, zostanie wykonany na kliencie, na
użytkowniku, na osobie przeglądającej stronę internetową.
Nie zostanie wykonany na
serwerze, więc nawet jeśli
Twój kod da ci odwrotną
powłokę, powłoka będzie pochodzić od
użytkownika przeglądającego
stronę, a nie ze strony internetowej.
Tak więc każdy kod, który napiszesz w JavaScript zostanie wykorzystany
lub zostanie uruchomiony na docelowym użytkowniku,
na osobach, które
oglądają strony, a nie na serwerze WWW.
Tak więc serwer WWW będzie używany tylko
do wykonywania kodu lub dostarczania kodu.
Istnieją trzy główne typy luk XSS: trwałe
lub przechowywane, odbite i
oparte
na DOM.
Przechowywany XSS jest przechowywany w bazie danych, więc kod, który
wstawiasz, będzie przechowywany w bazie danych lub na stronie,
dzięki czemu
za każdym razem, gdy każda osoba wyświetli tę
stronę, Twój kod zostanie wykonany.
Odbity kod
zostanie wykonany tylko wtedy,
gdy docelowy użytkownik uruchomi określony URL stworzony
lub napisany przez Ciebie.
Więc będziesz manipulował jakimś adresem URL i
wyślesz go do celu, a
kiedy uruchomią ten
cel, kiedy uruchomią ten adres URL, kod zostanie wykonany.
Wyniki oparte na DOM wynikają z kodu JavaScript napisanego
na kliencie.
Tak więc kod zostanie zinterpretowany
i uruchomiony po
stronie klienta bez żadnej komunikacji z serwerem WWW.
Może to
być bardzo niebezpieczne, ponieważ czasami serwery internetowe stosują pewne
zabezpieczenia i filtry, aby sprawdzić XSS.
Ale dzięki DOM kod nigdy nie jest wysyłany na
serwer WWW.
Tak więc kod zostanie zinterpretowany i uruchomiony w przeglądarce
internetowej nawet bez interakcji z serwerem sieciowym.
A te będą obecne na stronach internetowych, które
aktualizują swoją zawartość bez odświeżania.
Tak więc wszyscy korzystaliśmy ze stron internetowych, na których umieszczasz
na
przykład swoją nazwę
użytkownika i ładuje się ona od razu bez konieczności sprawdzania
na serwerze sieciowym, lub umieszczasz jakiś
ciąg i wykonuje wyszukiwanie bez komunikowania się z serwer WWW
lub robi coś bez komunikowania się z serwerem WWW.
Więc jeśli jesteś w stanie w
to wstrzyknąć, to wstrzyknięcie nie zostanie zweryfikowane,
więc zostanie wykonane od razu i
ominie wszystkie walidacje.