Hur du testar din egen webbserver mot mysql sårbarheter (4 / 9 steg)
Steg 4: Exempelkod
För att testa skäl, skrev jag Detta lilla skript. Det öppnar upp en databasanslutning, erbjuder en form och försöker hitta en användare i den databas som matchar de autentiseringsuppgifter du angett (e-post och lösenord). Bara spara skript på din webbserver och kalla filen "mysql-injection.php". Du kan behöva uppdatera databasnamnet för funktionen "mysql_select_db" när databasen har inte samma namn:
<? php
error_reporting(E_ALL ^ E_DEPRECATED);
mysql_connect ("localhost", "root", '');
mysql_select_db('mysql-injection');
om (! empty($_POST['email']) & &! empty($_POST['password']))
{
$query = "Välj * från 'användare' var 'email' = \''. $_POST ['email']." \ "Och"lösenord"= \'' .md5($_post['password'])." \'';
ECHO ' används frågan: ", $query," < br / >< br / >';
$resource = mysql_query($query);
$matches = mysql_num_rows($resource);
om ($matches > 0)
{
$user = mysql_fetch_assoc($resource);
ECHO "Hej". $user [email].'! ';
}
annat
{
ECHO 'Sjukling credentials!';
}
}
? >
< bildar metod = "post" action = "mysql-injection.php" >
< p > Logga in för att få privilegier! < /p >
Mail: < input type = "email" namn = "email" value = "<? =!empty($_POST['email'])? $_POST ['email']: ''? > "/ >< br / >
Lösenord: < input type = "lösenord" name = "lösenord" value = "<? =!empty($_POST['password'])? $_POST ['lösenord']: ''? > "/ >< br / >
< br / >
< input type = "Skicka" namn = "Skicka" / >
< / form >