En ce qui concerne les espaces, il existe de nombreuses méthodes alternatives, telles que les espaces d'onglet et / ** / dans les bases de données SQL, mais j'ai trouvé une autre méthode alternative, qui a été publiée dans le numéro 2006.7 de "Hacker Manual". Ici, nous choisissons l'essence et jetons un coup d'œil!
Pour les instructions SQL, tout le monde est toujours habitué à leurs espaces, tels que SelectIdFrom [nom]. S'il n'y a pas d'espace au milieu, il devient SelectIdFrom [nom], et il est confus! En plus des méthodes alternatives de quelques espaces mentionnés ci-dessus, j'ai constaté que l'utilisation des supports () peut également être exécuté en SQL. Par exemple, l'instruction ci-dessus peut être écrite en tant que sélection (id) dans [Nom], séparée par des supports, et peut être exécutée normalement.
Par exemple, nous obtenons un point d'injection: jmdcw.asp? Name = aa'and1 = 1and '' = ', si vous remplacez l'instruction selon laquelle 1 = 1 est le mot de passe de l'administrateur de requête: (selectac (mid (pass, 1,1)) de [name] wHERID = 1)> 49. Comment utiliser les espaces? En fait, il peut être écrit comme ceci:
jmdcw.asp? name = aa'and ((select (asc (mid (pass, 1,1))) à partir de [nom] où (id = 1))> 49) et '' = '
Si les symboles <et> sont bloqués, utilisez entre… et…, et l'instruction est:
jmdcw.asp? name = aa'and ((select (asc (mid (pass, 1,1))) à partir de [nom] où (id = 1)) entre (40) et (50)) et '' = '
Pour les endroits où les espaces doivent apparaître au milieu, utilisez () pour les remplacer, mais il n'est pas facile à utiliser pour des instructions SQL très complexes. Le type mentionné ci-dessus est le type de caractère. S'il s'agit d'un type numérique, vous pouvez ajouter un support après ID = 1. Cependant, je n'ai pas testé cela, par exemple: jmdcw.asp? Id = (1) et (select ......). Cela devrait être possible, non?
Haha, résumons et partageons-le avec des amis sur Lomeshell.