Instructeur: D'accord, alors nous savons
maintenant que nous pouvons mettre n'importe
quel code, ici, et qu'il sera exécuté sur le système.
Alors, regardons maintenant la déclaration.
Donc, la déclaration dit, sélectionnez * parmi les comptes, où nom
d'utilisateur est égal au nom d'utilisateur que nous avons mis ici, et mot
de passe est égal au mot de passe que nous avons mis ici.
Voyons si nous pouvons utiliser cela pour nous connecter sans utiliser de mot de
passe, sans même connaître le mot de passe.
Et je vais faire ça avec l'administrateur.
Ainsi, l'administrateur, le nom d'utilisateur sera admin.
Et je ne sais pas quel est le mot de passe pour l'administrateur.
Donc ce que je vais faire, je vais
juste mettre n'importe quoi, donc rien de vraiment, aucun mot de passe
aléatoire, Et, dans le code, eh bien, je devrais courir ici.
Alors faisions, et 1 = 1 et, ou des trucs, alors, ce
que je vais faire, c'est que je vais faire
ou, au lieu de et.
Et je vais dire 1 = 1.
Donc, ce que notre code va être, une fois
que je lance
ceci, une fois que je l'injecte, cela va entrer ici, comme
nous le faisons auparavant.
Donc, notre code va ressembler à ceci, alors
ça va être.
Sélectionnez * parmi les comptes,
où notre nom d'utilisateur est égal à admin.
Et le mot de passe est égal à AAA.
Maintenant c'est faux.
Ou, 1 = 1, ce qui
est juste.
Donc, chaque fois que vous avez un ou, si la ou la condition est
correcte, tout est correct.
C'est la façon dont la déclaration fonctionne.
Alors, sélectionnez * parmi les comptes.
Nous sommes utilisateur est égal à
admin, d'accord, nom d'utilisateur est égal à admin.
Et le mot de passe est égal à AAA, c'est faux.
Ou 1 = 1, d'accord, je l'accepterai.
Et ensuite, il va en fait
l'exécuter, et laissez-nous nous connecter à l'administrateur sans même connaître le
mot de passe de l'administrateur.
Alors essayons d'injecter ceci maintenant.
Et comme vous pouvez le constater, j’ai pu me connecter en tant
qu’administrateur et monkey est la signature de celui-ci.
Maintenant, le contournement et la connexion peuvent être effectués de nombreuses façons, en
fonction du code écrit sur la page.
Et en fonction de la façon dont vous voulez le faire
et de la manière dont vous imaginez le code.
Et beaucoup de cas, quand vous mettez la citation simple ici,
vous ne verrez pas ce message.
Parfois, vous le
voyez, ce qui facilite grandement votre travail.
Si vous ne le faites pas, alors vous devez
deviner à quoi ça ressemble.
Je vais donc vous montrer un autre exemple de contournement.
Au lieu d'injecter le code de cette
manière, le paramètre admin est également injectable, comme vous l'avez
vu lorsque je mets cette citation unique, le
paramètre admin est injectable, exactement de la même manière que le
mot de passe.
Ainsi, nous pouvons également injecter du code dans le nom d'utilisateur.
Et ce que je vais faire maintenant, alors jetons
un coup d'œil à cela, et je vais simplement
le réinitialiser.
Donc, nous aurions et le nom d'utilisateur et le mot de passe, en dehors des
champs dans lesquels vous avez entré quelque chose,
vont être remplacés, ainsi que le nom d'utilisateur et le mot de passe.
Donc, essayons d'injecter quelque chose dans le nom d'utilisateur, et
ce que je vais dire, c'est que je vais
dire que le nom d'utilisateur est égal
à admin, puis je vais fermer la citation moi-même,
puis je vais ajouter un commentaire.
Ainsi, ma déclaration, lorsque je la rédigerai, ressemblera à
ceci et que je vais simplement
la copier ici.
Et, quand j'en injecte un, quand je mets ce code ici, en
mon nom.
Cela va l'inclure là-dedans, donc voici
à quoi ressemblera le code.
Ça va sélectionner démarrer à partir des
comptes, où nom d'utilisateur est égal à admin.
J'ai fermé la citation moi-même ici, en l'utilisant ici.
Et puis j'ajoute un commentaire, donc en gros, tout
cela ne sera même pas exécuté, donc le
code va être ça, ça va être select
* from accounts, où nom d'utilisateur
est égal à admin.
Et ça va me permettre de me connecter
sans rien entrer dans le mot de
passe, alors faisons ceci.
Je vais mettre mon nom d'utilisateur en tant qu'administrateur, puis je
ferme la citation et ajoute un commentaire.
Et puis vous pouvez mettre n'importe quel mot de passe que vous voulez.
Je vais juste mettre # 1, puis je
vais me connecter.
Et comme vous pouvez le constater, j'ai réussi à me connecter en tant qu'administrateur.
Encore une fois, dans ce test, on teste la boîte noire,
de sorte que vous ne voyez pas vraiment le code.
Dans de nombreux cas, vous voulez jouer avec et
voir comment cela fonctionne avec vous.
Mais l’essentiel est que vous souhaitiez vérifier si l’injection SQL existe et que
vous utilisiez cette méthode à l’aide de la méthode que nous vous
avons présentée dans la vidéo précédente.
Essayez donc un seul guillemet, essayez les déclarations
and, essayez true et les déclarations, donc 1 = 1,
puis les déclarations false et, ainsi 1 = 0
ou 2 = 0, et si elles fonctionnent comme prévu, vous êtes la cible.
a une injection SQL, et vous pouvez
commencer à jouer avec elle.