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.9beendet gerade Ihre aktuelle Abfrage 0x31303235343830303536istNULL- Sie stimmen nur mit der Anzahl der Spalten in Ihrer vorhandenen Abfrage überein. Wenn SieSELECT * FROM usershatten undusershatte 4 Spalten, dieUNIONmuss 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.