La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que.

Presentaciones similares


Presentación del tema: "Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que."— Transcripción de la presentación:

1 Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que el programa o aplicación no se comporten de la manera que esperamos.

2 INYECCIÓN SQL Consiste en inyectar valores, parámetros o instrucciones para alterar el funcionamiento correcto de la aplicación. Básicamente, consiste en jugar con nuestros conocimientos de SQL y las comillas simples ( ‘ ) para hacer que la aplicación se comporte de manera diferente a como debería.

3 inyección sql Por ejemplo: sentencia = “SELECT * FROM users WHERE username = ‘” + username + “’;” Si introducimos un valor correcto quedaría así: Valor a introducir -> svoboda Consulta generada -> SELECT * FROM users WHERE username = ‘svoboda’; Pero, ¿Qué pasaría si introducimos un valor no correcto?: Valor a introducir -> svoboda’; DROP TABLE users; SELECT * FROM products WHERE ‘1’ = ‘1 Consulta generada -> SELECT * FROM users WHERE username = ‘svoboda’; DROP TABLE users; SELECT * FROM products WHERE ‘1’ = ‘1’; Quizás esto último no debería de poder pasar, ¿no?

4 INYECCIÓN LDAP LDAP es un sistema de listas de control de acceso de un dominio o red determinadas. Para el que este más familiarizado con entornos Windows, viene siendo lo mismo que el Directorio Activo. Generalmente, para las identificaciones, los usuarios introducen sus credenciales a través del formularios del siguiente estilo:

5 INYECCIÓN LDAP Username: Recogiéndolo así: user = Request.Form(“user”) ldapQuery = “(cn =” + user + “)” Si el usuario inserta un nombre válido todo debería ir bien: Valor a introducir -> svoboda Consulta generada -> (cn=svoboda) Pero, al igual que antes, ¿qué sucede si modificamos la cadena: Valor a introducir -> svoboda) (| (password=*) Consulta generada -> (cn = svoboda) (| (paswword=*)) Esta última cadena, lo que hará es devolvernos el password del usuario svoboda.

6 INYECCIÓN XPATH XPATH es un lenguaje que permite construir expresiones para recorrer y procesar un documento XML. Volvemos otra vez al mismo caso que el anterior, nos encontramos ante un formulario para identificarnos en una aplicación, para probar vamos a introducir una comilla simple a ver que pasa. En este caso, si todo va bien, nos devolverá un error de este estilo:

7 INYECCIÓN XPATH System.Xml.XPath.Exception: Error during parse of string(//user[name/text()='" and pass/text()='']) De aquí podemos deducir la estructura del XML que se está empleando: Y a partir de aquí lo único que tendremos que hacer es realizar la inyección: Valor a introducir -> ‘ or 1=1 or “=’ Consulta generada -> string(//user[name/text()='' or 1=1 or ''='' and pass/text()='']) Si todo sale según lo previsto, la consulta nos debería devolver el primer registro del XML

8 NOTA El resto de inyecciones son similares, en los argumentos de un programa o en un sistema operativo, si no se filtran las cadenas que se introducen en él, se pueden realizar acciones para las que la aplicación no está preparada. Para evitar las inyecciones, sean del tipo que sean, lo que deberemos hacer el filtras cualquier tipo de dato que se introduzca en nuestra aplicación, sea el origen de este es que sea. Existen herramientas de análisis que nos pueden ayudar a auditar nuestro código, pero algo que deberíamos hacer desde ya, es mentalizar a nuestros desarrolladores sobre la importancia de la validación y filtrado de datos.

9 OBJETIVO DE LAS INYECCIONES Los datos hostiles del atacante pueden engañar al intérprete y hacerle ejecutar comandos no intencionados o acceder a datos no autorizados.

10 SOLUCIÓN Usar una API (interfaz de programación de aplicaciones ) segura que evite usar el intérprete o proporcione una interfaz parametrizada Escapar los caracteres especiales Validar las entradas


Descargar ppt "Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que."

Presentaciones similares


Anuncios Google