Istruttore: finora in
tutte le lezioni abbiamo sfruttato manualmente le iniezioni di SQL.
Quindi stavamo iniettando il codice nell'URL o
nelle caselle di testo.
In questo video, ti mostrerò uno strumento chiamato sqlmap che ti
consente di fare tutto ciò che abbiamo imparato finora e
anche più cose.
Questo strumento può essere utilizzato su database
MySQL su cui stavamo facendo l'esempio.
Può anche essere utilizzato contro Microsoft
SQL, Oracle e altri tipi di database.
Lo strumento è molto utile ed è molto utile in molti casi.
A volte le iniezioni non sono così belle come quella
che abbiamo visto.
A volte ottieni solo un output per ogni record
e devi scorrere tutti gli output.
Quindi lo strumento può automatizzarlo e
fare tutto per te in modo molto più semplice e molto più semplice.
Quindi prima di tutto prendiamo
l'URL che stavamo usando per l'iniezione.
Quindi ho quel file di testo che stavamo usando
e ho l'URL che stavamo usando prima.
Quindi è l'utente. Informazioni. php,
username è admin, password, adminpass.
Non hai davvero bisogno di conoscere il
nome utente e la password, quindi in realtà inserirò qualcosa qui.
Quindi, solo per supporre che non
conosciamo la password, stiamo solo iniettando iniezioni di SQL.
Non abbiamo davvero bisogno di conoscere nessuna di queste cose.
Tutto quello che farò è
copiare questo e poi eseguirò sqlmap.
E ti farò per specificare l'URL e
metterò il mio obiettivo.
E
mi assicurerò di averlo tra due virgolette
in modo che non ignori nulla,
nessun segno nel mezzo, quindi
abbiamo alcuni segni e caratteri nel
mezzo che voglio che siano trattati tutti come uno URL.
Quindi tutto ciò che ho fatto è stato sqlmap -u il mio obiettivo.
E premerò Invio
e lo strumento esaminerà automaticamente i parametri, quindi
esaminerà le informazioni dell'utente, il nome
utente e la password per vedere
se qualcuno di loro è iniettabile e
poi, una volta fatto, lo
memorizzerà nella sua memoria.
Quindi saprà che questo è
iniettabile e quindi saremo in grado di sfruttare ulteriormente l'obiettivo.
Come puoi vedere
ora, sta pensando che il nostro obiettivo potrebbe essere MySQL o PostgreSQL.
Mi sta chiedendo se dovrebbe saltare altri test e sto per
dire di sì
perché so che è MySQL.
E ora mi sta chiedendo se dovrebbe fare tutti i test
per entrambi i database?
E dirò di sì, supponendo che non sia
sicuro di quale sia.
So che è MySQL, ma lo lascerò fare e farà
vedere se può farlo correttamente o no.
Quindi al
momento sta verificando se si tratta di PostgreSQL.
E suppongo che saprà che non lo è
e poi saprà che è MySQL.
Ha appena scoperto che il nome utente
sembra essere iniettabile.
E di sicuro, ci sta dicendo che
il nome utente del parametro è vulnerabile e che
possiamo iniettarlo.
Quindi mi sta chiedendo: voglio controllare gli altri parametri
come la password e tutti loro?
Posso dire di sì e lasciarlo fare, ma
sto per
dire di no perché non mi dispiace se utilizza solo
il nome utente per l'iniezione, quindi va tutto bene.
Ora, sqlmap sa che il bersaglio è iniettabile e
sa che utilizzerà il parametro username per
iniettare cose.
E vedo che ha capito che sta
eseguendo Linux Ubuntu e ha capito che sta usando PHP
con Apache 2. 2. 8.
E sta usando MySQL Server come server di database.
Quindi eseguiamo sqlmap --help e vediamo cosa possiamo
fare ora.
Ora, questo strumento è davvero
grande e ti consente di fare molte cose.
Quindi, in questo video, in realtà
ti mostrerò solo
una rapida occhiata al video e ti consiglio di passare più tempo
con esso e provare a vedere cos'altro puoi farci.
Va bene, quindi proviamo a ottenere l'utente corrente e
proveremo a ottenere il database corrente.
Quindi useremo lo stesso comando che
abbiamo usato prima e aggiungerò semplicemente dbms per ottenere i
database correnti.
O dbs, scusa.
Come puoi vedere, abbiamo tutti i database che abbiamo.
Quindi abbiamo dvwa, information_schema, metasploit, mysql,
owasp10 che era quello
che stavamo sfruttando prima e tikiwiki.
Ora, se facciamo l'utente corrente, puoi vedere
che siamo root e
se faccio il database corrente,
vedremo che owasp10 è il nostro database corrente.
Quindi ora proviamo a ottenere le
tabelle per owasp10, quindi ricordati quando abbiamo selezionato un nome di
tabella da information_scheme. tabelle
in cui table_schema è uguale a owasp10.
Faremo, lasceremo che sqlmap faccia tutto questo per
noi e quindi il comando sarà,
gli chiederemo di prendere tutti i tavoli per noi.
E useremo
l'opzione D per specificare il database
e il nostro database si chiamerà owasp10.
E come puoi vedere, ci ha portato tutti
i tavoli che esistono e ricordano, è lo stesso.
Abbiamo anche
account, blogs_table e credit_card.
E ora se vogliamo
ottenere le colonne, allora possiamo
usare di nuovo lo stesso comando e diremo di
procurarmi le colonne in cui la tabella si chiama
account e il database è owasp10.
E proprio qui possiamo vedere che abbiamo ottenuto le colonne.
Quindi abbiamo is_admin, la password e il nome utente
e possiamo ottenere
i dati usando l'opzione dump.
Quindi è lo stesso comando che abbiamo usato prima.
Quindi stiamo ottenendo il dalla tabella che si chiama account e
il database che si chiama owasp10.
Voglio che tu mi dia tutti i dati.
Ed eccoci qui, abbiamo tutti i dati.
Abbiamo admin, la sua password, adminpass
e abbiamo adrian e la sua password è somepassword.
E abbiamo tutti i dati qui.
Quindi, come ho detto, lo strumento è molto utile.
Può essere usato per rendere la nostra vita molto più
semplice e fa tutto automaticamente e può
fare tutto ciò che abbiamo fatto e
può anche fare più cose.