Instrutor: Ok, agora sabemos
que podemos colocar qualquer código
que quisermos aqui, e ele será executado no sistema.
Então, vamos dar uma outra olhada agora na declaração.
Assim, o extrato diz: selecione * em contas, onde o
nome de usuário é igual ao nome de usuário que colocamos
aqui e a senha é igual à senha que colocamos lá.
Vamos ver se podemos usar isso para fazer login sem usar uma
senha, sem nem mesmo saber a senha.
E eu vou fazer isso com o administrador.
Então, o administrador, o nome de usuário será admin.
E não sei qual é a senha do administrador.
Então, o que vou fazer,
vou colocar qualquer coisa, realmente nada, qualquer senha aleatória.
E, no código, bem, eu deveria correr aqui.
Então, estávamos fazendo, e 1 = 1 e, ou outras coisas,
o que eu vou fazer é, eu vou fazer
ou, em vez de e.
E eu vou dizer 1 = 1.
Então, qual será o nosso código, uma vez que
eu execute isso,
uma vez que eu injete isso, isso será incluído aqui,
como estamos fazendo antes.
Então, nosso código ficará assim, assim
será.
Selecione * em contas, onde
nosso nome de usuário é igual a admin.
E a senha é igual a AAA.
Agora isso está errado.
Ou 1 = 1, o que
é correto.
Portanto, sempre que você tiver uma ou, se a condição ou estiver
correta, tudo estará correto.
É assim que a afirmação funciona.
Então, selecione * em contas.
Nosso usuário é igual a admin,
ok, nome de usuário é igual a admin.
E a senha é igual a AAA, isso está errado.
Ou 1 = 1, ok, eu aceito.
E então, na verdade, ele será
executado e vamos fazer login no administrador sem nem mesmo saber
a senha do administrador.
Então, vamos tentar injetar isso agora.
E como você pode ver, consegui fazer login, como administrador,
e monkey é a assinatura do administrador.
Agora, o desvio e o login podem ser feitos de várias maneiras, dependendo
do código que está escrito na página.
E dependendo da maneira que você deseja fazer
e como está imaginando o código.
E muitos casos, quando você coloca a aspas simples
aqui, não verá esta mensagem.
Às vezes você o
vê, o que facilita muito o seu trabalho.
Se não, então você precisa adivinhar
o que parece.
Então, eu vou lhe mostrar outro exemplo de desvio.
Em vez de injetar o código
dessa maneira, o parâmetro admin também é realmente injetável,
como você viu quando coloquei essa aspas
simples, o parâmetro admin é injetável, exatamente da mesma maneira
que a senha.
Para que possamos injetar código no nome de usuário também.
E o que eu vou fazer agora, então vamos dar
uma olhada nisso, e vou apenas redefinir a forma como
normalmente seria.
Então, teríamos e o nome de usuário e a senha, fora dos
campos que você colocar aqui,
serão substituídos e o nome de usuário e a senha.
Então, vamos tentar injetar algo no nome de usuário, e
o que eu vou dizer é, eu vou dizer,
o nome de usuário é igual a
admin, e então eu vou fechar a citação pessoalmente
e depois vou Adicione um comentário.
Então, minha declaração, quando executá-la, ficará assim,
e na verdade vou
copiá-la aqui.
E, quando injeto um, quando coloco esse código aqui, em
meu nome.
Ele vai injetar isso lá, então é
assim que o código será.
Ele selecionará iniciar em contas, onde
o nome de usuário é igual a admin.
Fechei a citação aqui, usando isso aqui.
E, então, eu estou adicionando um comentário, então, basicamente,
tudo isso nem será executado, então o código
será esse, será selecionado * nas contas,
onde o nome de usuário
é igual a admin.
E isso permitirá que eu entre sem
inserir nada na senha. Então,
vamos fazer isso.
Vou colocar meu nome de usuário como administrador e fechar
a citação e adicionar um comentário.
E então você pode colocar qualquer senha que desejar.
Eu só vou colocar o número 1,
depois vou entrar.
E como você pode ver, eu consegui entrar como administrador.
Então, novamente, neste é um teste de caixa preta,
para que você realmente não veja o código.
Em muitos casos, você quer brincar com ele e
ver como isso funciona com você.
Mas, o principal é que você deseja testar se a
injeção SQL existe, e você usaria isso usando o método
que mostramos no vídeo anterior.
Portanto, tente uma
citação única, tente a
instrução tem uma injeção
de SQL e você pode começar
a brincar com
ela.