Die Webseite, an der ich gearbeitet habe, wurde vor kurzem von dem folgenden SQL-Injektionsskript gehackt
%Vor%Diese Injektion gab den MySQL-Tabellennamen zurück. Dies wurde von dem Fehlermeldesystem auf dieser Website gemeldet und wir haben es geschafft, diesen Teil zu beheben, aber ich bin nicht in der Lage zu verstehen, was die obige Injektion bedeutet?
Jeder kann das erklären?
Penuel
Nach diesem MySQL Concat ()
Gibt die Zeichenfolge zurück, aus der sich ergibt Verkettung der Argumente. Könnte haben ein oder mehrere Argumente. Ich falle Argumente sind nicht binäre Zeichenfolgen, die Ergebnis ist eine nicht binäre Zeichenfolge. Wenn die Argumente umfassen alle binären Zeichenfolgen, Das Ergebnis ist eine binäre Zeichenfolge. EIN numerisches Argument wird in sein konvertiert gleichwertige Binärzeichenfolge
Also wird 0x232425 in # $% konvertiert, was einfach zum Anfang und Ende des Feldes table_name hinzugefügt wird. Vielleicht, um es ihnen leichter zu machen, später mit Regex die Tabellennamen herauszuziehen.
Später entspricht das Zeichen (9) einer Registerkarte, wie Sie hier sehen können, und dient nur dazu, die Ausgabe schöner zu formatieren.
Das 3,4,5,6,7,8,9 ist gerade da, damit die Spalten mit dem Boys-Tisch übereinstimmen, an dem sie die Union ausführen.
Diese Injektion hat den MySQL-Tabellennamen zurückgegeben.
Meinst du, dass deine Website den Tabellennamen angezeigt hat, als du diese Eingabe eingegeben hast, oder dass die Abfrage das zurückgibt, wenn sie vom mysql-Client ausgeführt wird? Wenn es auf Ihrer Website angezeigt wird, hat der Angreifer die Möglichkeit, viel mehr schädliche Abfragen zu injizieren. Überprüfen Sie Ihre Daten.
Tags und Links sql security sql-injection