Ce n'est pas la requête complète, en fait d'entrée de la personne dans cette chaîne de votre application web.
Maintenant, tout d'abord remplacer %20 avec un espace vide dans l'union de la partie, vous obtenez:
SELECT concat(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536--
Semble à l'utilisateur de placer la corde dans un endroit où vous vous attendiez à un nombre. Donc, vous voyez qu'il y a d'abord un certain nombre (999.9) pour valider l'état d'origine de la requête. Ensuite, une partie de l'UNION est ajouté.
Enfin, après l'UNION de la partie, le commentaire de l'ajout de caractères ( -- ), de sorte que, le reste de la requête (qui peuvent être ajoutés par votre système) est court-circuité.
On peut formater le code pour mieux comprendre:
SELECT
concat
(
0x7e,
0x27,
Hex(cast(database() as char)),
0x27,
0x7e
),
0x31303235343830303536,
0x31303235343830303536,
0x31303235343830303536
Maintenant, la sous-chaîne de la première colonne du résultat contiendra l'hexagone forme codée de votre datbase nom. En fait, il doit être entouré de guillemets simples (0x27), puis de nouveau entouré par ~ (0x7e)