Cela ressemble à une attaque par débordement
. Ils UNION
-ed avec votre requête existante. remplacer tous vos %20
avec (espace) puisque son URL encodée donne :
=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
décomposer :
- le
=-999.9
vient de terminer votre requête en cours 0x31303235343830303536
estNULL
- ils correspondent simplement au nombre de colonnes de votre requête existante. Si vous aviezSELECT * FROM users
etusers
avait 4 colonnes, leUNION
doit également avoir 4 colonnes. Par conséquent, ils n'ont utilisé que des valeurs `NULL pour remplir ces colonnes.- la vraie confusion est dans le
CONCAT()
. Ils combinent 126, 39, nom de la base de données comme valeur hexadécimale, 39 et 126 --
est un commentaire mysql - il ignore le reste de votre requête après
À en juger par cette attaque, je soupçonne que vous n'encapsulez pas l'entrée dans mysql_real_escape_string()
, ce qui permettait à l'attaquant de sortir de votre requête et d'exécuter la sienne.
Voir owasp.org pour plus d'informations.