Istruttore: In questa lezione, e
nelle prossime lezioni, parleremo
di un tipo popolare di vulnerabilità, chiamato SQL Injections.
Prima di iniziare a parlare di come ciò
si verifica e di come sfruttarlo, impariamo innanzitutto cos'è SQL.
Ora, se stai eseguendo un test con penna su
un determinato sito Web, è probabile che questo sito Web sia un
po 'più grande dei siti Web più piccoli, quindi probabilmente utilizza un database.
La maggior parte dei siti Web,
oltre ai siti Web molto semplici, utilizza database, i database vengono utilizzati per archiviare
i dati, quindi memorizzano nomi utente, password, articoli di notizie,
post di blog, immagini.
Tutto ciò che accade sul sito Web, letteralmente,
viene archiviato in un database e l'applicazione Web esegue una query
sul database e quindi visualizza i dati all'utente o
agli utenti, sullo schermo.
Quando gli utenti fanno qualcosa, aggiornano,
eliminano o modificano i dati esistenti nel database.
Questa interazione, tra l'applicazione
Web e il database, avviene utilizzando un linguaggio chiamato SQL.
Quindi, lascia che ti mostri cosa intendo per database,
questo è solo un
esempio, non sto
hackerando nulla, sto letteralmente solo per accedere al
database che è installato sulla nostra macchina Metasploitable, e poi
siamo vedrò solo cosa è stato installato su di esso.
Quindi, non sto facendo alcun hacking, non c'è niente qui, non
c'è niente di speciale, sto solo accedendo al mio SQL.
E poi sto inserendo il
nome utente come root e Metasploitable non usa una password per
il root, il che è veramente male, ma ovviamente è un sistema vulnerabile.
Quindi, eseguirò l'accesso e non sto hackerando nulla,
non sto facendo iniezioni
di SQL, questo è solo il
terminale di MySQL, che l'applicazione Web userebbe per interagire
con il database.
Quindi, sto solo cercando di mostrarti cosa intendo per
database e cosa è salvato lì dentro.
Quindi, la prima
cosa che farò è digitare il database show.
E questo ci mostrerà i database che
esistono sul nostro server di destinazione e puoi vedere che
abbiamo lo schema delle informazioni, questo è un
database predefinito che contiene informazioni
predefinite, informazioni su tutti gli altri database.
Quindi questo viene installato per impostazione predefinita, quando
si installa MySQL.
Il resto è stato installato per ogni applicazione web.
Quindi, possiamo vedere, ne abbiamo uno per tikiwiki,
ne abbiamo uno per owas10, e questo è per questo Mutilllidae.
Ne abbiamo anche uno chiamato mysql, ne
abbiamo uno chiamato metasploit e
uno per dvwa, che è quello che stiamo
usando, l'applicazione web.
Quindi, puoi vedere,
per ogni applicazione web in realtà abbiamo
un database e questo database contiene le
informazioni utilizzate da quell'applicazione web.
Lascia che ti
mostri cosa c'è dentro, quindi userò il database owas10.
Quindi questo è quello che è, ancora, questo per
Mutilldae, per questa applicazione web.
E possiamo vedere la tabella, quindi ogni database
ha una tabella, tabelle e nelle tabelle ci sono informazioni.
Quindi, dirò "mostra tavoli" per vedere i tavoli che
abbiamo.
E puoi vedere, abbiamo una
tabella per gli account, quindi puoi presumere che questa tabella
abbia informazioni su nomi utente, password e informazioni sugli utenti.
Abbiamo una tabella per i blog, quindi probabilmente contiene gli input del
blog, i post e i commenti.
Puoi vedere i dati acquisiti, le carte di credito, quindi c'è
una tabella che contiene le carte di credito.
Ora, questo è enorme per i siti Web di
shopping, in realtà avrebbero un tavolo per le carte di
credito e le informazioni per le carte
di credito sarebbero memorizzate lì.
Fondamentalmente, il database memorizzerà tutto,
tutti i dati utilizzati sul sito Web.
Perché non vengono archiviati nei file, non è efficiente.
Quindi, diamo un'occhiata agli account e, se dico
semplicemente, "seleziona", questo è esattamente il modo in cui
l'applicazione Web recupererebbe le informazioni dal database,
selezionerà elementi, aggiornerà o eliminerà.
Quindi, sto facendo una dichiarazione selezionata qui, ancora una volta,
questo non è hacking, non sto facendo
nulla, sto solo selezionando roba.
E selezionerò la stella, il che
significa tutto, dai conti.
Apostrofo, e come possiamo vedere, abbiamo l'ID account, il nome utente, la
password e quindi
la firma per la persona, e
se quella persona è un amministratore.
Ora queste colonne dipendono dalla
tabella, quindi in realtà è la
persona che progetta il database, progetta anche le tabelle, le colonne e
quindi i dati vengono inseriti dall'applicazione web.
Quindi, puoi vedere che abbiamo un
utente chiamato admin e la loro password è adminpass.
Possiamo vedere che abbiamo un utente chiamato adrian
e la loro password è somepassword.
Quindi, questo è solo per mostrarti come sono i database, e solo
per farci un'idea, perché, nei
video futuri, proveremo a sfruttare questi database
e ad avere accesso simile a questo.
Quindi, ho appena effettuato l'accesso con
un nome utente
e una password ora, di solito non avresti
accesso in questo modo, solo l'amministratore web avrebbe quell'accesso.
Nei video futuri, proveremo a eseguire alcuni attacchi per ottenere un accesso simile
a questo, in modo da avere il pieno
controllo del database, in modo che possiamo
leggere cose e vedere se possiamo scrivere
o modificare cose .