Download in corso

Softwareone.it

Attacco WEB L’attacco SQL Injection

SQL injection è una tecnica dell’hacking mirata a colpire le applicazioni web che si appoggiano su un DBMS 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.

Questo è uno degli attacchi che si possono fare ad un sito web, dove, con una configurazione errata di un sito, si può accedervi, permettendo l’accesso a dati riservati.

Naturalmente per poter iniziare abbiamo bisogno di ApachePHP e MySQL.

Il primo serve per interpretare le pagine web, il secondo è il linguaggio di programmazione utilizzato per creare pagine dinamiche ed il terzo invece è il linguaggio di programmazione per il database. Per chi utilizza Windows consiglio Xampp o Winamp ed installatelo.

Poi bisogna scaricare ed installare anche ‘Tamper’, che è un’aggiunta a Firefox, per poter modificare la richiesta prima di spedire una richiesta poiché noi facciamo parte del lato client.

Naturalmente prima di fare qualsiasi cosa bisogna eseguire il programma ed abilitare i servizi Apache e MySQL.

Quello che andremo a far vedere è come trovare un nome utente ed una password e perché è possibile. Quindi andiamo a creare la nostra tabella nel database e per farlo aprire il command o la shell e digitare:

<?php // connessione al database
mysql_connect(‘localhost’ , ‘ [login mysql] ‘ , ‘ [password mysql] ’ ) or die(‘Connessione al database non riuscita’);
mysql_select_db( ‘user’ ) or die(‘Connessione al database non riuscita’);
// risultato finale
$risultato = '';
// inserimento dei paramentri
if( isset( $_POST['username'] ) &&amp; isset( $_POST['password'] ) ) {
$username = $_POST['username'];
$password = $_POST['password'];


$sql = mysql_query("SELECT * FROM user WHERE username='".$username."' AND password='"
.$password."'; ");
if(mysql_num_rows($sql) > 0) {
$risultato = Benvenuto, '.$username;
}
}
unset( $_POST );
?>

Questa sequenza vi permetterà di entrare nel vostro database inserendo nome utente e password che avete impostato.

CREATE DATABASE user;

USE user;

CREATE TABLE user { id INTERGER PRIMARY KEY , username VARCHAR(32) , password VARCHAR(41) };

E con queste procedure abbiamo creato il nostro database, la nostra tabella ed i due contenitori chiamati ‘username’ e ‘password’. Mi raccomando di mettere il punto e virgola alla fine di ogni comando.

Per poter trovare dei valori bisogna inserirli quindi andremo ad inserire:

INSERT INTO user ( username , password ) VALUES ( ‘user1’, ‘prova1’ ) ; INSERT INTO user ( username , password ) VALUES ( ‘user2’ , ‘mio123’ );

Adesso che abbiamo creato un database, andiamo a creare la visualizzazione della pagina.

Quella letta in automatico viene chiamata index e noi adesso andiamo a creare il file index.php nella cartella root di apache con dentro:

<html>
<head>
<title>Login</title>
</head>
<body>
<form action=’’ method=’GET’>
Username: <input type=’text’ name=’username’ />
Password: <input type=’password’ name=’password’ />
<input type=’submit’ value=’login’ />
</form>
<?php echo $risultato; ?>
</body>
</html>

Se inseriamo il nome utente e la password esatti ci andrà a visualizzare un messaggio di benvenuto, quindi se inseriamo ad esempio in username ‘user1’ ed in password ‘prova1’ avremo questo risultato

Se invece inseriamo username e password errate non succede nulla, quindi se inseriamo aaa e bbb nei rispettivi campi non otterremo nulla. Ma se noi invece andiamo ad inserire nell’username: aaa’ OR 1=1 # E nella password: bbb

E’ comparso il messaggio come se avessimo fatto il login e questo viene dato perché noi andiamo a sommare nella richiesta ‘ OR 1=1 #.

Se noi prendiamo quindi la richiesta:

“SELECT * FROM user WHERE username='".$username."' AND password='".$password."’;”

al posto di username dell’username e della password ci mettiamo i nostri valori:

“SELECT * FROM user WHERE username='aaa’ OR 1=1 # ' AND password='bbb’;”

È diventato tutto più chiaro poiché la chiusura dell’apice dopo aaa serve per dire che il primo campo è chiuso, la funzione OR 1=1 è sempre vera ed il simbolo # serve per far diventare commento il resto.

Quindi una volta inserito l’attacco andiamo a dire al server che è una richiesta sempre vera e lui ci saluterà come se fossimo degli utenti iscritti.

Per il momento è tutto e ci vediamo al prossimo articolo

Questo articolo è stato scritto a puro scopo informativo non ci assumiamo nessuna responsabilità dell’uso che ne fate.

Instaloader scaricare da Instagram

30-12-2018
Pubblicità