Es sieht aus wie ein Überlaufangriff
. Sie UNION
-ed mit Ihrer bestehenden Abfrage. alle Ihre %20
ersetzen mit (Leerzeichen), da seine URL-kodiert ergibt:
=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
zerlegen:
- der
=-999.9
beendet gerade Ihre aktuelle Abfrage 0x31303235343830303536
istNULL
- Sie stimmen nur mit der Anzahl der Spalten in Ihrer vorhandenen Abfrage überein. Wenn SieSELECT * FROM users
hatten undusers
hatte 4 Spalten, dieUNION
muss auch 4 Spalten haben. Als Ergebnis haben sie einfach `NULL-Werte verwendet, um diese Spalten zu füllen.- Die eigentliche Verwirrung liegt im
CONCAT()
. Sie kombinieren 126, 39, Datenbankname als Hex-Wert, 39 und 126 --
ist ein MySQL-Kommentar - danach ignoriert er den Rest Ihrer Anfrage
Nach diesem Angriff zu urteilen, vermute ich, dass Sie die Eingabe nicht in mysql_real_escape_string()
einschließen , was es Angreifern ermöglichte, aus Ihrer Abfrage herauszuspringen und ihre eigene auszuführen.
Siehe owasp.org für weitere Informationen.