-: W tej sekcji
będziemy rozmawiać o testach penetracji aplikacji internetowych.
Zanim zaczniemy o tym
mówić, musimy zrozumieć, co to jest strona internetowa.
Tak jak powiedziałem
wcześniej, strona internetowa to po prostu aplikacja zainstalowana na komputerze.
Ten komputer prawdopodobnie ma po prostu
lepsze specyfikacje
niż komputer, ale zasadniczo działa dokładnie tak
samo jak inny komputer.
Ma system
operacyjny i szereg aplikacji, które
pozwalają mu działać jako serwer WWW.
Dwie główne aplikacje, które
prawdopodobnie ma, to serwer WWW i baza danych.
Serwer WWW jest jak Apache,
a baza danych jest jak MySQL.
Serwer WWW w zasadzie rozumie i wykonuje
aplikację internetową.
Twoja aplikacja internetowa byłaby napisana w języku PHP lub
Python, naprawdę w dowolnym języku programowania.
Jedyną rzeczą jest
to, że serwer WWW musi
być w stanie zrozumieć i uruchomić tę aplikację internetową.
Baza danych zawiera dane wykorzystywane przez aplikację internetową.
Wszystko to jest przechowywane na komputerze zwanym serwerem.
Komputer jest podłączony do Internetu i ma
prawdziwy adres IP, dzięki czemu
każdy może uzyskać dostęp do tego komputera i pingować go.
Aplikacja internetowa jest wykonywana przez serwer
internetowy zainstalowany na twoim serwerze, na twoim celu.
Dlatego za każdym razem, gdy żądasz strony lub uruchamiasz
aplikację internetową, jest
ona faktycznie wykonywana na serwerze WWW
i nie jest uruchamiana na komputerze klienta.
Jest wykonywany na serwerze
WWW, a następnie wysyła stronę HTML, która jest
gotowa do odczytu dla osoby docelowej lub klientów.
Spójrzmy na przykład.
Powiedzmy, że rozmawiasz przez telefon lub komputer i chcesz
przejść do Facebooka. com.
Więc wpisujesz na Facebooku. pl na twój adres URL.
Zostanie to przetłumaczone przy użyciu serwera DNS na
adres IP.
Istnieje serwer, który tłumaczy każde imię. com,. edu lub dowolna strona internetowa z nazwą domeny, więc jest
to nazwa domeny na odpowiedni
adres IP.
Więc prosisz na Facebooku. com, żądanie trafia do
serwera
DNS, tłumaczy Facebook. com do adresu IP,
w
którym Facebook jest przechowywany, a następnie przejdzie do
adresu IP Facebooka, wykona stronę, którą chciałeś, korzystając ze wszystkich aplikacji,
o których mówiliśmy, a następnie
po prostu da ci gotowy HTML.
To, co otrzymujesz, to tylko znacznik
napisany w HTML, który jest językiem znaczników, wyniku
działania programu.
Program zostanie wykonany na serwerze, a
następnie otrzymasz tylko wynik.
Jest to bardzo ważne, ponieważ jeśli
w przyszłości chcemy wykonać
cokolwiek na serwerze WWW, jeśli chcemy
uzyskać
powłokę, odwrotną powłokę lub wirusa wykonanego na
komputerze docelowym, musimy wysłać to
na język które serwer sieciowy rozumie.
Na przykład PHP.
Kiedy go wykonasz, zostanie on
wykonany na tym komputerze, a nie na twoim komputerze.
Bez względu na osobę, która uzyskuje dostęp do strony, powłoka
internetowa, którą wyślesz, jeśli jest napisana
w PHP, w języku
zrozumiałym dla
serwera, zostanie wykonana na serwerze,
a nie na twoim komputerze.
Dlatego daje ci dostęp do serwera,
a nie dostęp do osoby, która uzyskała dostęp do tego serwera.
JavaScript, z drugiej strony, istnieje kilka stron internetowych,
które używają JavaScript.
JavaScript jest językiem po stronie klienta.
Jeśli uda Ci się znaleźć
stronę internetową, która pozwala na uruchomienie kodu
JavaScript, kod zostanie wykonany przez klientów.
Mimo że kod może zostać wstrzyknięty do
serwera WWW, zostanie wykonany po stronie
klienta i pozwoli
ci robić rzeczy na komputerze klienta, a nie na serwerze.
Bardzo ważne jest oddzielenie języka po stronie klienta
od języka po stronie serwera.