Appointment

Autore: Lord Shiva Aggiornamento: 09.01.2023 Tempo di lettura: 03 min.
 

 

Questa macchina ci aiuterà a comprendere meglio come effettuare un'SQL Injection.
Come sempre iniziamo ad analizzare la macchina scansionandola con nmap.

$ nmap -sV -sV -p- {ip_o_dominio_in_target}

L'opzione -sC viene utilizzata per eseguire la scansione degli script utilizzando il set predefinito di script. Lo -sVswitch viene utilizzato per visualizzare la versione dei servizi in esecuzione sulle porte aperte.

Dalla scansione nmap, possiamo vedere che la porta 80 è aperta e sta eseguendo il server Apache httpd con la versione 2.4.38 
Il server Apache httpd viene utilizzato per l'esecuzione di pagine Web su server Web fisici o virtuali.  Se digitiamo l'indirizzo IP della macchina nella barra degli indirizzi del nostro browser, possiamo vedere un sito Web con un form di accesso.

Solitamente in un form di accesso la query di accesso è: SELECT * FROM users WHERE username='$username' AND password='$password’

$username viene sostituito da quello che andremo a scrivere nel form così come $password. Per provare a fare un SQL Injection, potremo scrivere nel campo username admin'# oppure in entrambi i campi ' OR 1='1

In questo caso la query sarà trasformata nel seguente modo:

1° CASO -> SELECT * FROM users WHERE username='admin'#' AND password='$password’

2° CASO -> SELECT * FROM users WHERE username='' OR 1='1' AND password='' OR 1='1

In entrambi i casi è possibile eseguire un injection sull'SQL della macchina.

Adesso possiamo rispondere ad alcune domande:

Domanda 1: Cosa significa l'acronimo SQL?
Structured Query Language

Domanda 2: Qual'è la vulnerabilità più diffusa in SQL?
SQL Injection

Domanda 3: Cosa significa PII?
Personally Identifiable Information

Domanda 4: Qual è la classificazione OWASP Top 10 del 2021 per questa vulnerabilità?
A03:2021-Injection

Domanda 5: Cosa riporta Nmap come servizio e versione in esecuzione sulla porta 80 del target?
Apache httpd 2.4.38 ((Debian))

Domanda 6: Qual è la porta standard utilizzata per il protocollo HTTPS?
443

Domanda 7: Come si chiama una cartella nella terminologia delle applicazioni Web?
directory

Domanda 8: Qual è il codice di risposta HTTP fornito per gli errori "Non trovato"?
404

Domanda 9: Gobuster è uno strumento utilizzato per forzare le directory su un server web. Quale opzione utilizziamo con Gobuster per specificare che stiamo cercando di scoprire le directory e non i sottodomini?
dir

Domanda 10: Quale singolo carattere può essere utilizzato per commentare il resto di una riga in MySQL?
#

Domanda 11: Se l'input dell'utente non viene gestito con attenzione, potrebbe essere interpretato come un commento. Usa un commento per accedere come amministratore senza conoscere la password. Qual è la prima parola sulla pagina web restituita?
Congratulations

Domanda 12: Invia la Flag
e3d.........................672