Instructor: Bien, ahora sabemos
que podemos poner el código
que queramos aquí y se ejecutará en el sistema.
Entonces, echemos otro vistazo ahora a la declaración.
Entonces, la declaración dice, seleccione * de las cuentas, donde
el nombre de usuario es igual al nombre de usuario que ponemos
aquí, y la contraseña es igual a la contraseña que ponemos allí.
Veamos si podemos usar eso, para iniciar sesión sin usar una
contraseña, sin siquiera saber la contraseña.
Y lo haré con el administrador.
Entonces, el administrador, el nombre de usuario será admin.
Y no sé cuál es la contraseña para el administrador.
Entonces, lo que voy a hacer, voy
a poner cualquier cosa, así que nada realmente, ninguna contraseña
aleatoria, y, en el código, bueno, debería correr aquí.
Entonces estábamos haciendo, y 1 = 1 y, o cosas así, entonces,
lo que voy a hacer es, voy a hacer
o, en lugar de y.
Y voy a decir 1 = 1.
Entonces, cuál será nuestro código, una vez que
ejecute esto,
una vez que lo inyecte, esto entrará aquí, como
lo estamos haciendo antes.
Entonces, nuestro código se verá así,
así será.
Seleccione * de las cuentas, donde
nuestro nombre de usuario es igual a admin.
Y la contraseña es igual a AAA.
Ahora esto está mal.
O, 1 = 1, lo cual
es correcto.
Entonces, cada vez que tiene un o, si la condición o es
correcta, todo está bien.
Así es como funciona la declaración.
Por lo tanto, seleccione * de las cuentas.
Nuestro usuario es igual a admin, está
bien, el nombre de usuario es igual a admin.
Y la contraseña es igual a AAA, eso está mal.
O 1 = 1, está bien, lo aceptaré.
Y luego, en realidad lo ejecutará
y nos permitirá iniciar sesión en el administrador sin siquiera saber
la contraseña del administrador.
Así que intentemos inyectar esto ahora.
Y como puede ver, pude iniciar sesión como administrador, y
monkey es la firma del administrador.
Ahora, puede omitir e iniciar sesión de muchas maneras, según el
código que esté escrito en la página.
Y dependiendo de la forma en que quieras hacerlo
y de cómo imagines el código.
Y muchos de los casos, cuando pones la cita simple
aquí, no verás este mensaje.
A veces lo ves, lo
que hace que tu trabajo sea mucho más fácil.
Si no lo hace, entonces necesita
adivinar cómo se ve.
Así que te mostraré otro ejemplo de omisión.
En lugar de inyectar el código de
esta manera, el parámetro admin también es inyectable, como
has visto cuando pongo esta cita simple,
el parámetro admin es inyectable, exactamente de la misma manera
que la contraseña.
Entonces también podemos inyectar código en el nombre de usuario.
Y lo que voy a hacer ahora, así que echemos un vistazo
a esto, y voy a restablecerlo a la forma en que
normalmente se vería.
Por lo tanto, tendríamos que el nombre de usuario y la contraseña,
fuera de los campos que coloques
aquí, serán sustituidos y el nombre de usuario y la contraseña.
Entonces, intentemos inyectar algo en el nombre de usuario, y
lo que voy a decir es, voy a decir,
nombre de usuario es igual a admin,
y luego cerraré la cita yo mismo, y luego
voy a decir añadir un comentario.
Entonces, mi declaración, cuando ejecute la declaración, se verá
así, y en realidad solo voy
a copiarla aquí.
Y, cuando inyecto uno, cuando pongo este código aquí, en
mi nombre.
Va a inyectar eso allí, así que así
es como se verá el código.
Seleccionará el inicio de las cuentas, donde
el nombre de usuario es igual a admin.
Cerré la cita yo mismo aquí, usando esto allí mismo.
Y luego agrego un comentario, así que, básicamente, todo
esto ni siquiera se ejecutará, por lo que
el código será este, será seleccionado * de
las cuentas, donde el nombre de
usuario es igual a admin.
Y me permitirá iniciar sesión sin ingresar
ni siquiera nada en la contraseña.
Entonces, hagamos esto.
Voy a poner mi nombre de usuario como administrador, y
cierro la cita y agrego un comentario.
Y luego puede poner cualquier contraseña que desee.
Voy a poner el número 1, luego voy
a iniciar sesión.
Y como puede ver, logré iniciar sesión como administrador.
Entonces, de nuevo, en esto hay pruebas de recuadro negro,
por lo que realmente no ves el código.
En muchos casos, querrás jugar con él
y ver cómo funciona contigo.
Pero, lo principal es que quieres probar si existe la
inyección SQL, y la usarías usando el método que te
mostramos en el video anterior.
Por lo tanto, intente con una comilla simple, intente
con el enunciado y, intente verdadero y enunciados, entonces 1
= 1, y luego un enunciado falso, entonces 1
= 0, o 2 = 0, y si funcionan como se espera, entonces es
objetivo tiene una inyección SQL y puedes
comenzar a jugar con ella.