LOGIN volutamente vulnerabile

blacksbugs

Utente Attivo
18 Feb 2013
30
0
0
Buonasera a tutti,
sono uno studente di informatica e quest'anno all'esame vorrei portare una piccola dimostrazione pratica di una pagina web in php vulnerabile all' sql injection.

Il codice che ho scritto per ora è questo che riporterò di seguito, però non so che tipo di injection potrei provare oltre a quella di mettere nel campo password la stringa ' OR '1' = '1

Il codice vulnerabile a injection è questo:
PHP:
<?php
include "connessione.php";

$username = trim($_GET['username']);
$password = trim($_GET['password']);

// verifico se devo eliminare gli slash inseriti automaticamente da PHP
if(get_magic_quotes_gpc()) {
	$username  = stripslashes($username);
	$password  = stripslashes($password);
	}

// verifico la presenza dei campi obbligatori
if(!$username || !$password) {
	echo "Non hai completato tutti i campi !";
	exit;
	}
	
/* NON effettuo l'escape dei caratteri speciali per inserirli all'interno della query
$username    = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);	
*/
	
// preparo ed invio la query
$query = "SELECT id FROM users WHERE username = '$username' AND password = '$password'";



$result = mysql_query($query);
	// controllo l'esito
if (!$result) {
	die("Errore nella query $query: " . mysql_error());
}

$record = mysql_fetch_array($result);

if(!$record) {
	echo "NON FUNZIONA";
} else {
	session_start();
	$_SESSION['user_id'] = $record['id'];
	echo "Correttamente Connesso <br />ARE U THE REAL ADMINISTRATOR?";
}
	
?>

Funziona "correttamente", stampa Correttamente Connesso solo se user e psw corrispondono a quelli nel DB e se inserisco ' OR '1' = '1 al posto del campo psw ad esempio.
Io vorrei creare un esempio come QUESTO (x piacere non consideratelo come spam, non saprei come spiegarmi altrimenti) in cui posso provare molti tipi di injection... qualche idea?
 
Ultima modifica:

Discussioni simili