Guida SQL Injection, BWA e Hashcat

22 Febbraio 2022
475
42
353
350
Ultima modifica:
Oggi parliamo dell'attacco Hacker "SQL Injection" .

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'
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'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
La condizione diventa:
SQL:
SELECT id FROM users WHERE username='OR '1'='1' AND password='OR '1'='1'
1 è sempre uguale a 1, quindi l'operatore 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
Scarichiamola e importiamo il file .OVA in Virtual Box:
Le credenziali della VM sono:
  • USER: root
  • PASSWORD: owaspbwa
Ora appuntiamoci l'IP della macchina, digitare ifconfig nella shell:
Bash:
eth0: inet addr:192.168.1.19
Andiamo al sito http://192.168.1.19/wordpress/
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
l'output sarà il path dell'exploit: /usr/share/exploitdb/exploits/php/webapps/5486.txt
Questo è il source code dell'Exploit:
exploit-php.png

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...
L'SQL Injection ha funzionato! A schermo sono stampate le credenziali, la password e criptata con un hash MD5.
admin-pass-hash.png

4    Hashcat

Tramite Hashcat ora facciamo la decodifica dell'hash, cracchermo un hash di tipo MD5, 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
crack-hash.png

L'hash è stato craccato, la password è admin
Ora possiamo loggarci dentro al sito come amministratori, provare per credere!
login.png

login2.png

Possiamo cambiare password, nome, aggiungere/eliminare post, cambiare il tema del sito ecc ecc...

Crediti: Qua
 
  • Mi piace
Reazioni: TheWorm91 e 0xbro