-: In questa sezione, parleremo
del test di penetrazione delle applicazioni web.
Prima di poter iniziare
a parlarne, dobbiamo capire cos'è un sito Web.
Proprio come ho
detto prima, un sito Web è solo un'applicazione installata su un computer.
Quel computer probabilmente ha specifiche migliori
rispetto al
tuo computer, ma, fondamentalmente, funziona esattamente come
un altro computer.
Ha un sistema operativo
e ha anche una serie di
applicazioni per consentirgli di funzionare come un server web.
Le due principali applicazioni che
probabilmente ha sono un web server e un database.
Un web server è come
Apache e un database è come MySQL.
Il web server, fondamentalmente, comprende ed esegue
l'applicazione web.
La tua applicazione web verrebbe scritta in PHP o Python,
in qualsiasi linguaggio di programmazione, davvero.
L'unica cosa è
che il server web deve essere
in grado di comprendere ed eseguire questa applicazione web.
Il database contiene i dati utilizzati dall'applicazione Web.
Tutto questo è archiviato su un computer chiamato server.
Il computer è connesso a Internet e ha
un indirizzo IP reale, quindi chiunque
può accedere a quel computer e può eseguire il ping.
L'applicazione Web viene eseguita dal
server Web installato sul server, sulla destinazione.
Pertanto, ogni volta che richiedi una pagina o esegui
l'applicazione Web,
viene effettivamente eseguita sul server Web
e non viene eseguita sul computer client.
Viene eseguito sul server
Web, quindi invia una pagina HTML che è pronta da
leggere per la persona target o per i client.
Diamo un'occhiata a un esempio.
Diciamo che sei al telefono o sul tuo computer e che volevi
andare su Facebook. com.
Quindi, digiti facebook. com nel tuo URL.
Questo sarà tradotto usando un server DNS in un
indirizzo IP.
C'è un server che traduce ogni nome. com,. edu o qualsiasi sito Web con un nome di dominio, quindi questo
è un nome di dominio, al
relativo indirizzo IP.
Quindi, richiedi facebook. com, la richiesta va a
un
server DNS, traduce facebook. com all'IP in cui
è
memorizzato Facebook, quindi andrà all'indirizzo IP di
Facebook, eseguirà la pagina desiderata utilizzando tutte le applicazioni di cui
abbiamo parlato e quindi
ti fornirà semplicemente un HTML pronto.
Quello che ottieni è solo un markup
scritto in HTML, che è un linguaggio di markup, del
risultato dell'esecuzione del programma.
Il programma viene eseguito sul server e
quindi ottieni solo il risultato.
Questo è molto importante perché in futuro
se volessimo ottenere qualcosa eseguito
sul web server, se volessimo ottenere una shell,
una
shell inversa o un virus eseguito sul computer
di destinazione, allora dobbiamo inviarlo in
una lingua che il web server comprende.
Ad esempio, PHP.
Una volta eseguito lì, verrà
eseguito su quel computer, non sul tuo computer.
Indipendentemente dalla persona che accede alla pagina, la shell web
che invierai, se è scritta in
PHP, in una lingua
comprensibile al
server, verrà eseguita sul server
e non sul tuo computer.
Pertanto, ti darà accesso al server e
non l'accesso alla persona che ha avuto accesso a quel server.
JavaScript, d'altra parte, ci sono alcuni siti Web
che usano JavaScript.
JavaScript è una lingua lato client.
Se riesci a trovare un sito
Web che ti consenta di eseguire il codice
JavaScript, il codice verrà eseguito dai client.
Anche se il codice potrebbe essere iniettato
nel server Web, verrà eseguito sul
lato client e ti
permetterà di fare cose sul computer client e non sul server.
È molto importante separare tra una lingua lato
client e una lingua lato server.