Inyeccin de SQL SQL Injection Inyeccin SQL es

  • Slides: 25
Download presentation
Inyección de SQL

Inyección de SQL

SQL Injection Inyección SQL: es una vulnerabilidad informática en el nivel de la validación

SQL Injection Inyección SQL: es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL.

SQL Injection La meta de una inyección de SQL es insertar datos, leer información,

SQL Injection La meta de una inyección de SQL es insertar datos, leer información, borrar información o incluso ejecutar comandos del sistema operativo donde esta la BD.

¿Que es? UN ERROR de programación ¿Quien es el responsable? � 90% el programador

¿Que es? UN ERROR de programación ¿Quien es el responsable? � 90% el programador � 10% el lenguaje backend Razones: Descuidos, displicencias, ignorancia

SQL Injection ¿Por qué se le llama inyección de SQL? Este tipo de ataque

SQL Injection ¿Por qué se le llama inyección de SQL? Este tipo de ataque va dirigido a modificar una instrucción SQL valiéndose de los errores de programación de la aplicación.

SQL Injection USUARIO PASSWORD NOMBRE CORREO TELEFONO sandra ñlkjh Sandra Gonzalez sandra@sitec. com 555

SQL Injection USUARIO PASSWORD NOMBRE CORREO TELEFONO sandra ñlkjh Sandra Gonzalez [email protected] com 555 -112233 alex qwerty Alejandro Martinez [email protected] com 555 -243546 diana asdfg Diana Morales [email protected] 555 -125689 moises zxcvb Moises Alvarez [email protected] com 555 -102938 SELECT * FROM usuarios where usuario = "alex“ Resultado: 2, 'alex', 'qwerty', 'Alejandro Martinez', '[email protected] com', '555 -243546'

SQL Injection SELECT * FROM usuarios where usuario = "alex" or 1=1; 1, 'sandra',

SQL Injection SELECT * FROM usuarios where usuario = "alex" or 1=1; 1, 'sandra', 'ñlkjh', 'Sandra Gonzalez', '[email protected] com', '555 -112233' 2, 'alex', 'qwerty', 'Alejandro Martinez', '[email protected] com', '555 -243546‘ 3, 'diana', 'asdfg', 'Diana Morales', '[email protected] com', '555 -125689‘ 4, 'moises', 'zxcvb', 'Moises Alvarez', '[email protected] com', '555 -102938'

SQL Injection Tipos de ataque: �Aplicaciones basadas en WEB �Validación de usuario/password �Inyección de

SQL Injection Tipos de ataque: �Aplicaciones basadas en WEB �Validación de usuario/password �Inyección de código por método GET �Inyección de código por método POST

Ejemplos de ataques <? php $query = "SELECT * FROM products WHERE id LIKE

Ejemplos de ataques <? php $query = "SELECT * FROM products WHERE id LIKE '%a%' exec master. . xp_cmdshell 'net user testpass /ADD'--"; $result = mssql_query($query); ? > Agrega un usuario a un sistema XP / SQL Server

Debilidades �Pobres mecanismos de validación de variables de entrada. �Usar el manejo de errores

Debilidades �Pobres mecanismos de validación de variables de entrada. �Usar el manejo de errores del sistema en contra del propio sistema. En PHP: �mysql_error() �Error_reporting �Guardar las credenciales de acceso a la BD en texto plano en el mismo sitio web

Mecanismos de defensa �PHP Magic quotes. PHP 5 las trae activadas por defecto �SGBD

Mecanismos de defensa �PHP Magic quotes. PHP 5 las trae activadas por defecto �SGBD mysql_real_escape_string() Objetivo: Dar una secuencia de escape ‘ or 1=1 ’ or 1=1 �My. SQL, Postre. SQL, SQLite, Sybase y Max. DB son los unicos en proveer mecanismos de escape

Mecanismos de defensa �Herramientas de SANITIZACION de PHP 5 �http: //us. php. net/manual/en/intro. filter.

Mecanismos de defensa �Herramientas de SANITIZACION de PHP 5 �http: //us. php. net/manual/en/intro. filter. php

SQL Injection Quien puede ser afectado CUALQUIERA Casos famosos: �Miss twitter (tabla datos) �Facebook

SQL Injection Quien puede ser afectado CUALQUIERA Casos famosos: �Miss twitter (tabla datos) �Facebook y los albums de fotos

SQL Injection ¿Cuál es el propósito de una inyección de sql? Generalmente, una inyección

SQL Injection ¿Cuál es el propósito de una inyección de sql? Generalmente, una inyección de sql es solo una de las partes de un ataque a un sitio web. Los objetivos pueden ir desde: obtener información, modificar información o peor aun, borrar todos los datos.

Ataque a un sitio web Como la inyección de SQL solo es una pequeña

Ataque a un sitio web Como la inyección de SQL solo es una pequeña parte del plan

SQL Injection 1. Reconocimiento 2. Rastreo 3. Acceso � Niveles de SO / App

SQL Injection 1. Reconocimiento 2. Rastreo 3. Acceso � Niveles de SO / App � Redes � Bases de Datos 4. Mantener el acceso 5. Borrado de huellas

Fase 1 - Reconocimiento �Previo a cualquier ataque �Información sobre el objetivo �Reconocimiento pasivo:

Fase 1 - Reconocimiento �Previo a cualquier ataque �Información sobre el objetivo �Reconocimiento pasivo: �Google hacking �Ingenieria social �Monitorizacion de redes (sniffing)

Fase 2 - Escaneo �Escaneo es una fase de pre-ataque �Se escanea la red

Fase 2 - Escaneo �Escaneo es una fase de pre-ataque �Se escanea la red pero ya con información de la fase previa �Detección de vulnerabilidades y puntos de entrada �El escaneo puede incluir el uso de dialers, puertos scanners, network mapping, sweeping, vulnerability scanners, etc

Fase 3 - Obtener acceso �Obtención de acceso (se refiere al ataque) �Como. .

Fase 3 - Obtener acceso �Obtención de acceso (se refiere al ataque) �Como. . aprovechando una debilidad �Buffer overflow, Do. S (Denial of Service), robo de sesión, inyección de sql, etc �El atacante puede obtener accesso: �Permisos de superusuario/admin �Shell (aplicación o web) �Bases de datos �red

Fase 4 – Mantener el accesso �Se trata de retener los privilegios obtenidos �A

Fase 4 – Mantener el accesso �Se trata de retener los privilegios obtenidos �A veces un hacker blinda el sistema contra otros posibles hacker, protegiendo las vulnerabilidades encontradas, puertas traseras, etc

Fase 5 – Borrado de huellas �Se intenta no ser descubierto �Dependiendo de la

Fase 5 – Borrado de huellas �Se intenta no ser descubierto �Dependiendo de la técnica utilizada, los mecanismos de defensa pueden darse cuenta o no de que estamos invadiendo.

¿Y…como nos defendemos? Necesitamos saber las respuestas a: �¿Qué puede saber un intruso de

¿Y…como nos defendemos? Necesitamos saber las respuestas a: �¿Qué puede saber un intruso de mi? (fase 1 y 2) �¿Qué puede hacer un intruso con esa informacion? (fase 3 y 4) �¿Se podría detectar un intento de ataque? Fase 5

SQL Injection Un mundo global (video)

SQL Injection Un mundo global (video)

“Si conoces al enemigo y te conoces a ti mismo, no necesitas temer al

“Si conoces al enemigo y te conoces a ti mismo, no necesitas temer al resultado de cientos de batallas” Sun Tzu, El Arte de la Guerra

ISC Manuel Alejandro Martínez Márquez Orgullosamente egresado del ITC Twitter: @alxhack. 01@gmail. com Gracias

ISC Manuel Alejandro Martínez Márquez Orgullosamente egresado del ITC Twitter: @alxhack. [email protected] com Gracias a todos por su atención