Y esta conferencia vamos a ir y echar un vistazo al alto nivel de seguridad y veremos
por qué es un inyectable.
Avancemos primero y digamos que el nivel de seguridad es demasiado alto.
Ahora volveré a mi inyección de habilidades y asegurémonos de que la página funcione primero.
Solo voy a poner el número uno como siempre lo hicimos.
Y como puedes ver ahora la página funciona.
Ahora intentemos inyectarlo después del que está después del parámetro ID como siempre lo hicimos y lo voy a poner
y uno es igual a uno, así que estoy poniendo una declaración verdadera.
Y como puede ver ahora, la página realmente no funciona.
Así que tratemos de poner una sola cita aquí para cerrarla como lo hicimos con el nivel bajo.
Y nuevamente, esta inyección tampoco funciona a pesar de que se nos da una declaración verdadera
que no debería interferir con la solicitud actual.
Por lo general, no miramos el código cuando intentamos piratear, pero como dije, este es un inyectable.
Así que echemos un vistazo al código y lo compararemos con el código utilizado para el nivel
de seguridad medio y veremos cuál es la diferencia entre los dos códigos para que podamos aprender cómo proteger
nuestros sitios web.
Así que voy a buscar y cambiar el nivel de seguridad a medio aquí
solo para poder comparar los dos códigos y volveré a la inyección de habilidades y también veré la fuente.
Y Dios los puso uno al lado del otro.
Entonces, aquí, en el nivel de seguridad medio, puede ver que la idea se está leyendo aquí e instalada en
la variable ID.
Y luego hay una función de aplicación llamada mi Eskew the real escape.
Entonces, lo que hace esta función es pasar por todos los caracteres de la variable ID y buscará
caracteres especiales como comillas simples y comillas dobles y las eliminará.
Por lo tanto, las comillas utilizadas o inyectadas en la variable ID se eliminarán realmente en esta línea debido
al uso de mi oscura tensión de escape real.
Ahora el asunto es que una vez que bajemos a la declaración de habilidades, verá que en realidad no necesitamos usar comillas
para inyectar código en las declaraciones, nuestra declaración es seleccionar el nombre y apellido de los usuarios donde una ID
de usuario es igual a CARNÉ DE IDENTIDAD.
Así que en realidad no necesitamos cerrar ninguna cita.
No necesitamos inyectar comillas en la variable ID.
Todo lo que tenemos que hacer es poner cualquier idea como lo hicimos en el último video para que podamos poner el
número uno y luego inyectar el código inmediatamente después del número uno.
Entonces, cuando usamos este código aquí, básicamente, no usamos las comillas en los medios.
Entonces, literalmente, solo estamos dando la identificación como número uno.
Y luego estamos diciendo nombre de columna de selección de unión, cualquiera que sea de las tablas de esquema de información.
Entonces, el código acaba de inyectarse inmediatamente después de la ID y luego la base de datos lo leerá
y ejecutará.
No es necesario usar comillas nuevamente porque el código no usa ningún código único, por lo que el código solo dice que
la ID de usuario es igual a la ID.
Ahora, comparando esto con el código que tenemos para el alto nivel de seguridad,
verá que usa la misma función para omitir caracteres especiales, pero está implementado de la manera correcta.
Y eso es mediante el uso de comillas simples en la declaración Escurial alrededor de la idea, por lo tanto, porque
el código se mantiene en las comillas que ponemos y porque están usando comillas allí, cualquier código
que intentemos inyectar aquí se considerará como si fuera parte de la identificación.
Entonces, cuando usamos este código aquí, así que si solo usamos el código tal como está sin una cita,
entonces obviamente solo se insertará en lugar de la variable ID entre las dos comillas simples.
Por lo tanto, solo se considerará como la ID.
Mientras que si inyectamos ese código aquí, en realidad se ejecutará como parte de la instrucción kill.
Así que echemos un vistazo a cómo se verá la declaración obvia cuando inyectemos nuestro código tanto en los medios
como en el alto nivel de seguridad.
Así que solo voy a derribar a los técnicos aquí para que tengamos la mejor declaración para el medio aquí y la declaración de
habilidad para el nivel de alta seguridad e intentaremos inyectar y uno es igual a 1 porque como hemos visto si
puedes inyectar eso, entonces puedes inyectar lo que quieras realmente y ejecutarlo en la base
de datos.
OKAY.
Mirando la declaración media, vamos a copiar este código.
Ahora este código irá y pasará por el carácter de escape my my real.
Por lo tanto, se eliminará de cualquier código único que tenga pero no tiene nada y el código se verá
como uno.
Y uno es igual a uno.
Por lo tanto, esta declaración es válida y quiere ser igual y será inyectada.
Ahora, mirando el alto nivel de seguridad, observe este uso de la comilla simple, lo que significará que la ID
de usuario es igual a uno y uno es igual a uno.
Entonces, uno es igual y no se considerará como parte de la instrucción OR, pero
se considerará como parte de la ID de usuario.
Ahora intentemos agregar la cita simple y ver qué efecto tendría eso en la pantalla o en las declaraciones.
De hecho, me voy a deshacer de esta declaración porque logramos inyectarla y solo nos vamos a
centrar en los máximos en las declaraciones utilizadas en el alto nivel de seguridad.
Entonces, estamos usando una cita simple aquí para cerrarla y vamos a copiar esto.
Ahora esto realmente pasará por la pantalla y escapará de la fuerza.
Entonces, la cita simple que estamos usando aquí será eliminada.
Y esta línea se convertirá en una y una es igual a una, por lo que será igual o exactamente
igual a la línea que usamos antes.
Ahora uno quiere que esto se sustituya aquí de nuevo.
Uno y uno es igual y se considerará como parte de la Z de la ID de usuario y no se considerará
como parte de la declaración de escarola.
De esto podemos ver que el uso de la fuerza de escape real no es suficiente.
Tiene que ser usado con las comillas simples aquí y combinado con esa función, entonces
esta declaración específica como kill se convierte en inyectable.
Ahora, en futuras conferencias, vamos a discutir una mejor manera de crear aplicaciones web
para que no puedan inyectarse declaraciones SKM.
Pero si necesita una solución rápida, puede hacerlo hasta que tenga tiempo y pueda cambiar la implementación
de su sitio web para que no se pueda inyectar.