Zaid: Porozmawiajmy teraz
o tym, jak możemy zapobiegać lukom XSS.
Sposób, w jaki te luki się
zdarzają, jest taki, że za każdym razem, gdy
użytkownik wprowadza
coś w polu tekstowym lub
w parametrze, dane wejściowe są wyświetlane w kodzie HTML.
Jest więc traktowany tak, jakby był częścią strony,
a zatem, jeśli jest w nim
JavaScript, kod jest wykonywany.
Tak więc, aby zapobiec temu
exploitowi, najlepiej
jest spróbować zminimalizować użycie niezaufanych danych wejściowych.
Więc za każdym razem, gdy
użytkownik wprowadza coś lub za każdym razem, gdy coś
wprowadza z parametrów, spróbuj to zminimalizować.
Upewnij się
również, że zawsze unikasz tego,
co ma być wyświetlane
lub używane na stronie HTML,
ponieważ XSS może być nie tylko
wstrzykiwany w miejsca, w których rzeczy są
wyświetlane na stronie, ale może być również wstrzykiwany
do parametrów niektórych elementów stronę HTML.
Więc to, co mam na
myśli, mówiąc o ucieczce, to konwersja każdego
z tych znaków na to, co byłyby reprezentowane w HTML.
Możesz to zrobić za pomocą skryptów
i możesz to zrobić za pomocą własnego skryptu.
Teraz pokażę ci, jak to się dzieje.
Teraz jestem tutaj na mojej wrażliwej stronie
internetowej, z
której korzystaliśmy, i przejdę do magazynu.
I oczywiście
widać, że za każdym razem, gdy na to klikamy, XSS działa.
Przyjrzyjmy się więc temu elementowi.
Teraz ten element jest miejscem, w którym wstrzyknęliśmy nasz alert.
A jeśli klikniemy
prawym przyciskiem myszy i przejdziemy
do sprawdzania elementu, pokaże nam podświetlony kod HTML tej
strony lub kod HTML tego konkretnego
elementu.
Więc zamierzam to powiększyć.
A jeśli spojrzymy na to właśnie tutaj, zobaczysz,
że mamy imię, a
to jest Zaid.
A potem inne dane wejściowe, czyli komunikat, to
skrypt, a
skrypt, co skrypt robi,
to ćwiczenie alertu.
Więc to jest dokładnie to, co wstawiliśmy do niego,
kiedy tworzyliśmy komentarz.
Więc za każdym razem, gdy byliśmy
na tej stronie, ten fragment kodu jest wykonywany Więc to,
co musimy
zrobić, to upewnić się za każdym razem, gdy użytkownik
coś wprowadzi i że coś zostanie wyświetlone na
stronie lub że coś zostanie gdzieś użyte w żywiołach.
Więc nawet ID tutaj
lub nawet H, ID jest na przykład parametrem
div, nie jest
wyświetlane, nigdy nie widzisz tego ID,
ale to może być wstrzykiwane, może być również wstrzykiwane.
Tak więc hakerzy mogą próbować wstrzykiwać rzeczy
do parametrów, mogą próbować wstrzykiwać rzeczy
do atrybutów obrazu, na przykład mogą
zrobić obraz
i wstrzyknąć rzeczy do źródła
lub adresu URL.
To tylko przykład.
I za każdym razem, gdy dane wejściowe użytkownika będą używane w
dowolnym miejscu na stronie, więc nawet jeśli
ich nie widzisz, jeśli zwykle ich nie widzisz, musisz
upewnić się, że unikniesz tych danych
wejściowych i
upewnij się, że tak nie zawiera
żadnego kodu, a
jeśli zawiera kod, który jest skonwertowany na odpowiednik,
kod nie będzie uruchomiony.
Tak więc jest konwertowany na jego odpowiednik
HTTP, więc faktycznie, po ucieczce z tego,
zobaczysz to w wiadomości.
Więc widzisz wiadomość jako alert skryptu XSS,
ale nigdy nie zostanie on wykonany.
Ten skrypt nigdy nie zostanie uruchomiony na
osobie docelowej, gdy go uruchomi.
Teraz jako użytkownik, aby
nie dać się wykorzystać do ataku XSS.
Teraz przychodzący do Ciebie adres URL
będzie prawdopodobnie wyglądał jak adres URL zaufanej strony internetowej,
na przykład
załóżmy, że pracujesz w
firmie i w Twojej firmie był XSS,
logujesz się do swojej firmy
i kod jest wykonywany na
tobie, wtedy niewiele możesz zrobić sam.
Ale musisz być ostrożny.
Tak więc w przypadku BeEF widzieliśmy,
aby wykorzystać luki, pokazując na przykład
fałszywą aktualizację.
Więc upewnij się, że jeśli zawsze otrzymujesz wiadomość, że
jest aktualizacja,
upewnij się, że faktycznie wchodzisz na stronę
internetową, która udostępnia tę aplikację.
Jeśli więc
Firefox powiedział, że jest aktualizacja, wejdź na stronę internetową Firefoksa
i sprawdź, czy rzeczywiście jest aktualizacja.
A jeśli tak, pobierz go z
tej witryny, nie pobieraj go z otrzymanego powiadomienia.
Upewnij się też, że pobierasz go z witryny HTTPS.
A po pobraniu możesz go sprawdzić i sprawdzić w ten
sam sposób, w jaki
widzieliśmy wcześniej, aby upewnić się, że
nie ma w nim żadnych tylnych drzwi ani niczego.
Możesz również sprawdzić sumę md5, aby upewnić
się, że plik nie
został zmodyfikowany podczas jego pobierania.
To samo, gdy zrobiliśmy fałszywe logowanie do
Facebooka, gdy jesteś z BeEF, więc to, co możesz zrobić, to
za każdym razem,
gdy zostaniesz poinformowany, że się wylogowałeś, zaloguj się
ponownie, ponownie, zignoruj to.
Idź na Facebooka. com, upewnij się, że przechodzi przez HTTPS,
a następnie zaloguj się do Facebooka.
Dlatego zawsze staraj się uważać na wyskakujące powiadomienia informujące, że
musisz coś zrobić.
Zawsze bądź ostrożny
i nigdy im nie ufaj.