Ethical Hacker con AI

DVWA Comandi

Damn Vulnerable Web Application. Utilizzo

DVWA (Damn Vulnerable Web Application) - guida passo passo con comandi concreti per laboratorio isolato

Promemoria importante

Uso consentito e sicurezza del laboratorio

Esegui i passaggi e i comandi di questa guida solo in ambienti isolati (Host-Only o Internal Network) e con autorizzazione. DVWA e una applicazione volutamente vulnerabile: non esporla mai su Internet pubblico.

Contenuti della guida

Cosa impari

Installazione rapida con Docker, installazione locale con MAMP e MySQL, creazione database con comandi MySQL, verifiche con nmap e curl, e workflow didattico di utilizzo.

Prerequisiti

Software e ambiente
  • Docker installato se scegli il metodo con container.
  • MAMP installato se scegli il metodo locale con Apache, PHP e MySQL.
  • Una VM attaccante (per esempio Kali) nella stessa rete isolata del target DVWA.

Link utili

Download e documentazione

Metodo A - Avvio rapido con Docker

Esecuzione del container

Esegui il container DVWA e pubblica la porta 80 del container sulla 8080 del tuo host o VM del laboratorio.




docker run --rm -d --name dvwa -p 8080:80 vulnerables/web-dvwa 

Apri il browser su [http://localhost:8080](http://localhost:8080) oppure su http\://IP\_HOST:8080 se stai usando una VM.

Controllo stato e log



docker ps
docker logs -f dvwa

# opzionale, se supportato:

docker exec -it dvwa /bin/sh 
Arresto e rimozione



docker stop dvwa && docker rm dvwa 

Metodo B - Installazione con MAMP e MySQL

1) Installare e avviare MAMP
  • Installa MAMP dal sito ufficiale e avvia l applicazione.
  • Verifica che Apache e MySQL siano in esecuzione dalla dashboard di MAMP.
  • Nota porte tipiche: Apache su 8888 e MySQL su 8889 su macOS (verifica nelle preferenze). Su Windows le porte possono essere 80 e 3306, verifica sempre.
2) Copiare DVWA nella document root

Scarica DVWA da GitHub e copia la cartella nella document root di MAMP.




# macOS - esempio terminale

cd \~/Downloads
git clone [https://github.com/digininja/DVWA.git](https://github.com/digininja/DVWA.git)
sudo cp -R DVWA /Applications/MAMP/htdocs/DVWA
sudo chown -R \$(whoami)\:staff /Applications/MAMP/htdocs/DVWA
sudo chmod -R 755 /Applications/MAMP/htdocs/DVWA 
3) Creare il database MySQL

Usa la CLI MySQL fornita da MAMP oppure phpMyAdmin incluso in MAMP. Di seguito esempio con CLI su macOS.




/Applications/MAMP/Library/bin/mysql -u root -proot
\-- quindi nella shell mysql:
CREATE DATABASE dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'dvwa';
GRANT ALL PRIVILEGES ON dvwa.\* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
EXIT; 
4) Configurare DVWA per MySQL

Modifica il file di configurazione config/config.inc.php dentro la cartella DVWA con i parametri corretti.




# imposta i valori del database

$\_DVWA\['db\_server']   = 'localhost';
$\_DVWA\['db\_database'] = 'dvwa';
$\_DVWA\['db\_user']     = 'dvwa';
$\_DVWA\['db\_password'] = 'dvwa';

# assicurati che i permessi siano corretti

sudo chmod 644 /Applications/MAMP/htdocs/DVWA/config/config.inc.php 
5) Inizializzare l applicazione
  • Apri il browser su http://localhost:8888/DVWA/setup.php (adatta la porta se diversa).
  • Segui il pulsante Create o Reset Database per creare le tabelle e completare il setup.
  • Accedi alla pagina principale e verifica che DVWA sia operativa.

Verifiche dopo l installazione

Test porte e risorse

Esegui i test dalla VM attaccante o dall host del laboratorio.




# verifica porte comuni (adatta IP\_TARGET)

nmap -p 80,8080,8888 IP\_TARGET

# verifica HTTP di base

curl -I [http://localhost:8080/](http://localhost:8080/)
curl -s [http://localhost:8080/DVWA/login.php](http://localhost:8080/DVWA/login.php) | head -n 20

# se usi MAMP:

curl -I [http://localhost:8888/DVWA/](http://localhost:8888/DVWA/) 

```

Esempio di workflow didattico

Passi consigliati
  • Crea snapshot puliti di Kali e della macchina DVWA.
  • Esegui discovery con nmap per identificare servizi e versioni.
  • Imposta un proxy (Burp o ZAP) nel browser e analizza richieste e risposte.
  • Modifica il livello di sicurezza in DVWA (Low, Medium, High) e osserva le differenze.
  • Documenta risultati e ripristina gli snapshot a fine esercitazione.

Troubleshooting

Problemi comuni e soluzioni rapide
  • Errore connessione DB: controlla credenziali nel file config/config.inc.php e che MySQL sia attivo in MAMP.
  • Pagina bianca o errori PHP: consulta i log di Apache e di PHP nella cartella logs di MAMP.
  • Container Docker non risponde: usa docker logs -f dvwa per analizzare eventuali errori.
  • Proxy non intercetta: verifica le impostazioni del proxy nel browser e disattiva estensioni che interferiscono.

Articolo generato da ChatGPT.

Livio Bollini
Walter Livio Bollini

Matematico & Informatico · Intelligenza Artificiale · Sviluppo Web