header image
Home
Azienda
Servizi
Libra Security
Prodotti
Security Alerts
Area Riservata
Downloads
Login Utente
Inserire le proprie credenziali:





Password dimenticata?
Nessun account? Registrati
Il tuo ip : 38.107.191.84
Home arrow Libra Security arrow Ethical Hacking arrow SQL Injection: Un esempio pratico
SQL Injection: Un esempio pratico
Indice articolo
SQL Injection: Un esempio pratico
Pagina 2

La SQL injection è una tecnica dell'hacking mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL.

Questo exploit sfrutta l'inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all'interno di una query SQL. Le conseguenze prodotte sono imprevedibili per il programmatore: l'Sql Injection permette al malintenzionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d'accesso) e di visualizzare e/o alterare dati sensibili.

Per ulteriori approfondimenti vedere anche l'articolo SQL Injection pubbilcato dal Libra Security.

Fin qui è tutta teoria, ma in pratica come funziona?!

Per un esempio pratico ricorreremo ad uno script in PHP (fate riferimento alla documentazione ufficiale di PHP) che si appoggia ad un database MySQL.
La tecnica che è alla base dell'Sql Injection è comunque identica anche per altri tipi di namedatabase o di linguaggio (come l'ASP).
Lo script utilizzato come esempio si occupa di autenticare un utente ed è diviso in due file: il primo è form.html (un semplice form per il login in html), il secondo login.php (che controllerà i dati e stabilirà, se consentito, il login. È in PHP). L'utente visualizza form.html e compila i dati, che verranno automaticamente inviati a login.php, che li memorizza sottoforma di variabile globale $_POST.

form.html

<form action='login.php' method='post'>
   Username: <input type='text' name='user' />
   Password: <input type='password' name='pwd' />
   <input type='submit' value='Login' />
</form>

Il form è molto semplice: ha solo due campi, uno per l'username e uno per la password.
I dati immessi verranno poi passati (come detto) a login.php, nelle variabili rispettive $_POST['user'] e $_POST['pwd']. Una volta ricevuti questi dati, PHP effettua una query e li cerca all'interno del database.
Se verranno trovati procederà all'autenticazione dell'utente.

login.php

<?php
 
//Prepara la query, in una variabile
$query = "SELECT * FROM users WHERE user='".$_POST['user']."' AND pwd='".$_POST['pwd']."'";
 
//Esegue la query (supponiamo che sia già aperta una connessione valida al database e $db è lo stato)
$sql = mysql_query($query,$db);
 
//Conta il numero di righe trovate (se questo numero è maggiore di 0 i dati immessi sono corretti)
if(mysql_affected_rows($sql)>0)
{
//Esegue la convalidazione dell'autenticazione e permette l'accesso a pagine protette
}
 
?>



 
Cerca su Libra Srl
Links