Teraz, zanim zagłębimy się w to, jak wykorzystać i odkryć luki w zabezpieczeniach, chciałbym zatrzymać się i wrócić
na chwilę, aby zobaczyć, co dokładnie się dzieje, gdy użytkownik kliknie określony link.
Mamy więc tutaj stronę klienta.
To jest twój komputer z witryną e-mail, która jest wyświetlana użytkownikowi.
Więc to wszystko jest załadowane na twój komputer, na klienta.
A potem mamy serwer, który zawiera kod, który jest wykonywany, jeśli witryna działa i
używa kodu.
Więc kiedy klikniesz na link.
Witryna poczty e-mail lub część strony po stronie klienta wygeneruje żądanie, więc przez większość czasu
nie będzie wykonywać żadnych obliczeń.
Czasami jest kod po stronie klienta i zobaczymy to.
Ale zazwyczaj kod witryny klienta wygeneruje żądanie, które zostanie wysłane do witryny internetowej, do serwera WWW, a
serwer WWW będzie miał jakiś funkcjonalny kod, taki jak BHP lub Python, Ruby, dowolny język programowania.
I przez większość czasu kod wchodzi w interakcję z bazą danych, otrzymuje jakieś
informacje, a następnie wysyła je jako odpowiedź na stronę internetową, do przeglądarki, a przeglądarka wyświetla się
jako HTML.
Tak więc kod, kod funkcjonalny lub kod obliczeniowy jest zwykle przechowywany po stronie serwera.
A sposób działania większości tych stron polega na tym, że generują żądanie, wysyłają je do serwera, serwer, wykonują
żądanie i odsyłają je z powrotem.
Kiedy więc próbujemy włamać się na strony internetowe i wykorzystać je, zwykle bawimy się
żądaniami i próbujemy je zmodyfikować tak, aby wykonywały pewne działania, które pomogłyby nam zdobyć informacje lub uruchomić
pewien rodzaj kodu, który dałby nam połączenie odwrotne.
Teraz są dwa rodzaje próśb, są prośby o pobranie i prośby o wysłanie.
Miejmy przykład, więc jeśli przejdziemy tutaj na ostateczne włączenie, zobaczysz, że mamy zmienną
o nazwie Page, a jej wartość to include.
Więc tutaj jest to żądanie get, ponieważ możemy zobaczyć jego wartości w adresie URL.
Widzimy więc, że strona to zawiera.
Tak więc ta strona żąda innej strony, aby dołączyć inną stronę o nazwie Index Dot.
Teraz nie będziemy wchodzić w szczegóły, co to oznacza.
Martwimy się tylko o przykład, a to jest przykład.
To jest zmienna, dla której otrzymaliśmy wartość, którą jest Page, a my nadajemy jej
wartość include Dogpatch.
Więc to jest żądanie.
Przykładem żądania postu jest przesyłanie pliku, więc jeśli przejdziemy do przesyłania pliku, gdy prześlesz coś
tutaj.
Więc pozwól, że po prostu coś wrzucę.
Zobaczysz, że adres URL nie jest modyfikowany, ale żądanie, sens witryny, obraz jest faktycznie przesyłany na
serwer i tak dalej, ale adres URL nadal wygląda tak samo.
Ale strona wysłała informacje.
Strona Hatami wysłała więc informacje na serwer.
Po prostu nie widziałeś tutaj informacji, ponieważ zostały wysłane jako post zamiast get.
Więc.
Pierwszym problemem jest teraz to, że nie widzimy kosztów plakatu, nie możemy ich modyfikować, ponieważ nie
są one pokazane tutaj w adresie URL, w przypadku jeszcze możemy je zmodyfikować bezpośrednio z adresu URL.
Innym problemem jest to, że wiele z tych stron będzie w przyszłości wykorzystywanych w celach bezpieczeństwa i będą
korzystać z kodu po stronie klienta.
Więc jeśli to jest używane, to żądanie jest faktycznie modyfikowane przed wysłaniem.
Będą więc filtry i inne rzeczy działające po stronie klienta, które zmodyfikują nasz kod, zanim go wyślemy.
Więc najlepszym sposobem przechwytywania żądań i abyśmy mogli zobaczyć żądania poczty, użyjemy
proxy.
Serwer proxy, którego będziemy używać, to proxy narodzin.
Tak więc, w jaki sposób narodziny będą działać, mamy tutaj naszego klienta i serwer sieciowy, tak jak
widzieliśmy to wcześniej, i mamy stronę e-mailową załadowaną na naszą maszynę ze słodyczami.
Więc kiedy zamiast tego wysyłamy żądanie, zamiast wysyłać je bezpośrednio do przeglądarki internetowej, tak naprawdę skonfigurujemy naszą
przeglądarkę tak, aby wysyłała żądanie do berp.
Więc to działa tutaj nasz serwer proxy.
Berp zobaczy wszystkie parametry, które są publikowane na stronie.
Więc zobaczymy prośby o posty, aby otrzymać prośby i zobaczymy je.
W końcu kod klienta został zastosowany.
Tak więc niektóre strony internetowe stosują kod Clydeside, jak powiedziałem na prośbie, zanim go wyślą.
Tak więc będziemy mogli zobaczyć żądania po zastosowaniu kodu witryny klienta.
Jest to bardzo ważne, ponieważ wiele witryn korzysta z filtrowania po stronie klienta, dzięki
czemu będziemy mogli ominąć wszystkie te filtry, przechwytując żądanie.
Następnie, gdy zmodyfikujemy żądanie w berpie, przekażemy je na stronę internetową.
Serwis wykona go i zwróci nam.
Wszystko to wyjaśni się w następnym wykładzie, ponieważ w praktyce używamy berp proxy do przechwytywania i
modyfikowania żądań.