L'obiettivo è che sia gli utenti principianti che quelli professionali interessati ad analizzare e risolvere i problemi di sicurezza possano mettere alla prova le proprie conoscenze, abilità e strumenti in un ambiente simulato, questo tipo di gli strumenti sono molto utili per gli sviluppatori web Possono comprendere i problemi che un'applicazione o un sito Web può avere e migliorare la programmazione o cercare vulnerabilità.
Sebbene la maggior parte degli sviluppatori abbia preso precauzioni contro potenziali vulnerabilità, molte vulnerabilità come Scripting tra siti (XSS) o Iniezioni SQL, che incidono sulla sicurezza di molti siti web e quindi degli utenti.
In questo tutorial andremo a installare e configurare un sito Web da utilizzare come laboratorio di prova per gli audit di sicurezza Web, dove troveremo diverse vulnerabilità, anche più comuni, proponendo vari livelli di difficoltà nelle vulnerabilità, che potranno poi essere analizzati.
Useremo Damn Vulnerabilty Web Application (DVWA), è un sito Web da installare su qualsiasi server che abbiamo, incluso uno locale per poter eseguire test di pentest. Possiamo scaricarlo dal suo sito ufficiale.
Dopo averlo scaricato abbiamo bisogno di un server web o di un server locale come indicato nei tutorial:
- Come installare Xampp per trasformare il tuo computer in un server web
- Server web portatile Easyphp
Ora dopo aver scaricato il file zip di Damn Vulnerabilty Web Application (DVWA), lo decomprimiamo e lo copiamo nella cartella del nostro server web, in quel caso utilizziamo Xampp sotto Linux.
Successivamente dobbiamo configurare il database per questo andremo da phpmyadmin.
Se vogliamo farlo da una finestra di terminale utilizzeremo il seguente comando, possiamo accedere tramite ssh:
utente ssh @ miipPer prima cosa accederemo al server MySQL dalla riga di comando con il seguente comando:
mysql -u root -pIn questo caso, l'utente root viene specificato con il flag -u, quindi viene utilizzato il flag -p per indicare che MySQL deve richiedere una password. Inseriamo la chiave di accesso per poter accedere a MYSQL.
Quindi possiamo creare il database dalla riga di comando:
creare database dvwa;Quindi andiamo nella directory di configurazione e quindi modifichiamo il file config.inc.php, qui modifichiamo i dati per indicare il nome del database, l'utente e la password di accesso:
Salviamo la configurazione e dobbiamo andare al browser dove abbiamo il web e fare clic su Crea/Ripristina database per continuare con l'installazione.
Successivamente creeremo i dati del database che configuriamo e possiamo vedere alcuni strumenti che il web porta.
Quindi dopo l'installazione, quando torniamo al web http: // localhost / dvwa, otterremo una schermata di accesso:
Per accedere al sito utilizzeremo i seguenti dati:
Utente: amministratore
Chiave: parola d'ordine
Nella colonna di sinistra del web abbiamo un menu alla fine possiamo vedere l'opzione SICUREZZA DVWADa qui possiamo configurare il livello di difficoltà per le vulnerabilità, i livelli di sicurezza sono basso, medio, alto o impossibile.
Il livello di sicurezza modifica il livello di vulnerabilità di DVWA:
Livello di sicurezza bassoQuesto livello di sicurezza è completamente vulnerabile e non ha misure di sicurezza, quindi ci consentirà di testare più facilmente le tecniche di hacking. Il suo uso deve essere un esempio di come le vulnerabilità delle applicazioni web si manifestano attraverso cattive pratiche di codifica e servire come piattaforma per insegnare o apprendere tecniche di base di sfruttamento, cracking e hacking.
Livello di sicurezza medioQuesto livello serve a mostrare le vulnerabilità, in cui lo sviluppatore non è riuscito a garantire che il codice e lo sviluppo non abbiano vulnerabilità.
Alto livello di sicurezzaQuesto livello si rivolge agli utenti più avanzati per affrontare una difficoltà media, con un misto di cattive pratiche di programmazione nel codice web. Qui possiamo provare tecniche avanzate.
Livello di sicurezza ImpossibileQuesto livello è il più sicuro contro tutte le vulnerabilità. Viene utilizzato per confrontare il codice sorgente vulnerabile con il codice sorgente protetto. Questo livello ha lo scopo di dimostrare come un sito web deve essere sviluppato correttamente e come deve rispondere prima di possibili attacchi.
Impostiamo il livello più basso per poter testare diverse tecniche di hacking e rilevamento delle vulnerabilità.
Prova la forza bruta per craccare un accesso con il tuo script
Accediamo al collegamento Brute Force e vediamo che c'è un modulo di accesso, inseriamo tutti i dati nel nome utente e nella password per farlo fallire e vedere se si verifica un errore.
Quando il login fallisce, vediamo un url con i dati inseriti, prendendo l'URL che ci mostra:
http: // localhost / dvw… vedi & Login = Login #,
Quindi possiamo creare uno script che testa diverse combinazioni per utente e password o utilizzare un programma come xHydra che è un'interfaccia grafica per Hydra o direttamente dalla riga di comando se questo è l'unico accesso che abbiamo tramite SSH al server.
Per installare Hydra utilizzeremo i seguenti comandi:
sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updateudo apt-get install hydra hydra-gtkDopo l'installazione dovremo cercare o creare le liste utenti e le possibili chiavi in formato txt oppure cercare un dizionario da utilizzare come abbiamo fatto nel tutorial.
Anche un file di testo con i nomi dei possibili utenti, possiamo anche utilizzare alcuni database già funzionanti come questi dizionari di skullsecurity.org che vengono utilizzati in molti strumenti, antivirus, ecc., Che consentono il cracking o l'hacking di password. Tutte le origini dati sono gratuite.
Successivamente useremo idra con le liste che abbiamo usando i seguenti comandi:
hydra -L /home/innove/usuarios.txt -P /home/innove/claves.txt 192.168.0.11 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Accesso non riuscito "-w 10 -V
Possiamo vedere che alcuni risultati sono stati positivi, mostrando in verde gli utenti e la password che hanno ottenuto il login accettato. Se proviamo con l'utente admin e la password entreremo per vedere il pannello utente
Vulnerabilità SQL injection
Al livello di sicurezza più basso, il web è vulnerabile all'SQL injection, prima di iniziare a iniettare codice nel campo di testo, possiamo osservare il codice che consulta la tabella in PHP che è vulnerabile.
L'errore è che i dati non devono essere inviati da GET ma utilizzando POST e in secondo luogo, occorre verificare che i dati che arrivano non contengano codice dannoso.
L'istruzione SQL esegue direttamente ciò che arriva senza alcun controllo o verifica. Quindi questo rende il codice vulnerabile alle SQL injection, ad esempio possiamo ottenere l'elenco completo degli utenti se nella pagina SQL injection invece di un id aggiungiamo il seguente codice:
1 'OR 1 = 1 UNION SELECT null, version () #Il risultato sarà l'elenco degli utenti.
Possiamo anche ottenere l'intero elenco di tabelle se applichiamo il seguente codice nel campo di testo.
1 'OR 1 = 1 UNION SELECT null, nome_tabella FROM SCHEMA_INFORMAZIONI.tabelle
Possiamo applicare altre combinazioni per ottenere la lista degli utenti e vedere i dati di ogni tabella.
Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo