Ein Freund von mir hat eine Webanwendung erstellt, die ich zum Spaß teste. Ich habe festgestellt, dass er einem Benutzer erlaubt, das Limit einer bestimmten Abfrage festzulegen, und dieses Limit ist nicht bereinigt.
Zum Beispiel kann ich eine beliebige Zahl oder Zeichenfolge als Limit auswählen. Mir ist klar, dass dies SQL-Injection ist und ich problemlos SQL-Befehle einfügen kann. Ist es jedoch wirklich möglich, mit einem LIMIT
Daten zu extrahieren oder Schäden zu verursachen?
Beispiel für die Abfrage:
SELECT * FROM Nachrichten WHERE ungelesen = 1 LIMIT ** USER INPUT HERE **
I. Wenn die Injektion in der Klausel WHERE
enthalten wäre, hätte ich leicht eine UNION SELECT
durchführen können, um Informationen zu extrahieren. Ist dies jedoch wirklich möglich, wenn die Benutzereingabe nach dem erfolgt? Grenze?
Für weitere Informationen verwendet mein Freund das DBMS MySQL, sodass Sie zwei Abfragen nicht wirklich ausführen können, z. B.:
SELECT * FROM Nachrichten WHERE ungelesen = 1 LIMIT 10; DROP TABLE Nachrichten--
Es ist nicht möglich.