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.9
sta terminando la tua query attuale 0x31303235343830303536
èNULL
- corrispondono solo al numero di colonne nella tua query esistente. Se avessiSELECT * FROM users
eusers
aveva 4 colonne, laUNION
deve 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.