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.

Slides:



Advertisements
Presentaciones similares
Consultas en Visual FoxPro
Advertisements

SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
integridad referencial
ADMINISTRACION DE REDES SECUENCIA DE COMANDOS EN SITIOS CRUZADOS(XSS)
Aprendizaje de Microsoft® Access® 2010
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
SISTEMA DE NACIMIENTOS MANUAL DEL USUARIO. El objetivo del presente manual es servir de guía al usuario final para interactuar con el Sistema, permitiéndole.
ACCESO A BASES DE DATOS ORACLE CON PHP
Inyección de SQL.
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
ADMINISTRACION DE REDES TEMA REDIRECCIONES Y REENVÍOS NO VALIDADOS
PL/SQL Francisco Moreno Universidad Nacional.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
ROMERO G ARCIA FANY KARINA Y BARRIOS CRUZ REBECCA SARAHI GRUPO:303 EQUIPO:5.
Semana 5 Subprogramas..
Los Diez Riesgos Más Importantes en Aplicaciones WEB Top A1-Inyección Oscar William Monsalve Luis Alberto Suarez Jorge Eliecer Betancur Diana Marcela.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Comentarios en PHP Programación en Internet II. Comentarios en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la.
Tablas de verdad en PHP Programación en Internet II.
1.1 Concepto y terminología
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Ing. Elkin José Carrillo Arias
ATAQUES POR INYECCION DE CODIGO SQL
Elementos básicos del lenguaje
UD 1: “Adopción de pautas de seguridad informática” Análisis de las principales vulnerabilidades de un sistema informático. Luis Alfonso Sánchez Brazales.
Elementos básicos del lenguaje
REFERENCIA DIRECTA INSEGURA A OBJETOS
NOMBRES:OLIVARES ALFARO JOSE L. BONETTI ARON GRUPO:308.
Servicio de Notas Autores: Fco. Javier López Peñalver Javier Rayado Escamilla.
Introducción a ataques de tipo inyección: Inyección SQL
LENGUAJE SQL.
Bases de Datos Sql.
Convertirse en otro Usuario Prof. Juan P. Valdez Diplomado Oracle Unapec – mescyt 2012.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Bases de Datos.
Metodología de la programación
Lenguaje Estructurado de Consulta
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López 24/09/ Adrián de la Torre López.
PUNTO 3.
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. CREATE.
File Transfer Protocol.
NOMBRE: KENIA MACÍAS. RECOMENDACIONES PARA HACER UN FORMULARIO En un sistema web, en muchas ocasiones es necesario obtener información del usuario y para.
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
SHUTTENBORG ACCESS CONOCE LOS PROGRAMAS. Cortés Gamboa Lizzeth
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Lenguaje de Programación LISP
A NÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez.
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
¿Cómo programar un Botón para agregar registros a una base de datos?
Análisis de las principales vulnerabilidades de un sistema informático. Javier Rodríguez Granados.
Gestión de usuarios básica SQL Server. Primero configuramos el SQLServer para que se pueda gestionar usuarios propios del SQLServer. Vamos a las propiedades.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO TEPEPAN INTEGRANTES: Montoya Mendoza Diana Rubí Martínez Vallejo Isamar Scanda PROFA: Gabriela Pichardo Lozada.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
El Conjunto de Datos de Prueba Auditoría Operativa y de Sistemas de Información.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Consultas a mysql desde PHP índice 1. Introducción 5. Ejemplo 4. Tratamiento de datos 2. Instrucción SQL 3. Pasos C o n s u l t a s a m y s q l d e s d.
DML Transact SQL Sesión VI Trabajando con subconsultas.
Php y mysql índice 1. Conexión 6. Ejercicio 5. Insertar un registro 2. Operaciones básicas 3. Seleccionar BD 4. Crear una BD P h p y m y s q l Índice 1.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Transcripción de la presentación:

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.

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.

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?

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:

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.

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:

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

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.

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.

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