Sembra un attacco di overflow
. Loro UNION -ed con la tua query esistente. sostituendo tutto il tuo %20 con (spazio) poiché la sua codifica URL restituisce:
=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
scomponilo:
- il
=-999.9sta terminando la tua query attuale 0x31303235343830303536èNULL- corrispondono solo al numero di colonne nella tua query esistente. Se avessiSELECT * FROM userseusersaveva 4 colonne, laUNIONdeve avere anche 4 colonne. Di conseguenza, hanno semplicemente usato `valori NULL per popolare quelle colonne.- la vera confusione è nel
CONCAT(). Stanno combinando 126, 39, nome del database come valore esadecimale, 39 e 126 --è un commento mysql - ignora il resto della tua query dopo
A giudicare da questo attacco, sospetto che tu non stia avvolgendo l'input in mysql_real_escape_string() , che ha permesso agli attaccati di saltare fuori dalla tua query ed eseguire la propria.
Vedi owasp.org per ulteriori informazioni.