Ich versuche, eine SQL-Injection-Angriff auf meine eigene Datenbank durch Einfügen von SQL-Code in die Eingabebereiche zu simulieren.MySql Abfrage nicht ausgeführt, wenn es einen Kommentar gibt
My SQL-Code ist:
SELECT * FROM Users
WHERE username = '...'
AND password = '...';
wo ... der Eingang ist.
Ich versuche, die folgende Eingabe zu verwenden, um jeden Benutzer auszuwählen und zu begrenzen, dass die Ausgabe auf 1
Hier ist der Benutzername Eingabe:
' OR ''='
Dies sollte alle Benutzernamen bekommen.
Und hier ist der Passworteingabe:
' OR ''='' LIMIT 1; --
Dies sollte alle Passwörter bekommen zuerst, dann nur 1 Zeile, um die Ausgabe zu begrenzen, und kommentieren Sie dann die endgültige ';
der Code so ausgeführt sollte aussehen wie:
SELECT * FROM Users
WHERE username = '' OR ''=''
AND password = '' OR ''='' LIMIT 1; -- ';
Dies funktioniert aus irgendeinem Grund nicht. Ich benutze SequelPro und es sagt mir, dass es 2 Abfragen ausführt und nichts ausgibt. Die zweite Abfrage ist -- ';
Allerdings, wenn ich diesen letzten Teil entfernen und nur bis zum ersten Semikolon laufen, funktioniert es und ruft einen einzelnen Benutzer aus der Datenbank ab.
Was ist los?
Ich denke, der Fehler ist klar. Sie versuchen, zwei Abfragen auszuführen, aber die API lässt nur 1 zu. Sie müssen das mittlere Semikolon entfernen. –
lesen Sie über PHP mysql API und mehrere Anweisungen. Es ist nicht erlaubt – Jens
Ohh ich sehe, danke. Ich war jedoch verwirrt, weil das zweite Semikolon nur ein Kommentar ist. Ich habe nicht bemerkt, dass das als eine andere Aussage zählt? – user2397282