sql injection

25

Upload: lisset-cadima-reyes

Post on 24-Jul-2015

90 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SQL Injection
Page 2: SQL Injection

NIVEL DE ATAQUE

Nivel de Sistema Nivel de Aplicacion

Page 3: SQL Injection
Page 4: SQL Injection
Page 5: SQL Injection

INTRODUCCION

Las principales vulnerabilidades de este tipo de aplicaciones incluyen fallas de inyección de código o de archivos (SQL injection o system commands injection)

Page 6: SQL Injection

Las Aplicaciones Web que son vulnerables a SQL injection pueden permitir que un a atacante obtenga acceso completo a su base de datos, este tipo de ataques se manifiesta en los sistemas de base de datos introduciendo sentencias SQL

Page 7: SQL Injection

(inyección directa de comandos SQL o SQL injection) Técnica utilizada por personas maliciosas con el fin de alterar o atacar un sitio o servidor a través de comandos SQL.

Las inyecciones utilizan información de entrada del usuario combinado con comandos SQL para construir una consulta SQL maliciosa

Page 8: SQL Injection

Con estas inyecciones se pueden obtener datos escondidos, eliminar o sobrescribir datos en la base de datos y hasta lograr ejecutar comandos peligrosos en la máquina donde está la base de datos.

Page 9: SQL Injection

El objetivo de SQL Injection es introducir datos arbitrarios, mayormente en las consultas a la base de datos, Introduce una cadena que es finalmente ejecutada por la base de datos,

Page 10: SQL Injection
Page 11: SQL Injection

Tipos de SQL Injection Inyección Básica.

Conocimiento de la Base de Datos Realizar Consultas con una o mas

acciones La información de errores, herramienta

para realizar SQL Injection

Page 12: SQL Injection

Nombres: Ju'; drop table authors--

Apellidos:

La consulta quedara asi:

EJEMPLO DE SQL INJECTION BASICO

Page 13: SQL Injection

Inyección A través de Cookies:

La vulnerabilidad de la aplicacion Web esta cuando utiliza estos cookies para hacer consultas SQL.

Inyección a través de variables del Servidor:

El atacante puede falsificar estas variables y ponerla en el network header.

Inyección de Segundo Orden:

se introduce de manera indirecta un disparador a la base de datos

MECANISMOS DE INYECCION SQL

Page 14: SQL Injection

Identificación de parámetros inyectables

Descubrir tipo y versión de la base de datos

Determinar el esquema de la base de datos

Extraer datos, etc…

INYECCIÓN A CIEGAS (BLIND INJECTION)

Page 15: SQL Injection

Usuario: ' having 1=1--

This provokes the following error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

/process_login.asp, line 35

FORMAS DE CONSEGUIR INFORMACIÓN DE LA BASE DE

DATOSDato Erróneo

Objetivo del Atacante

Page 16: SQL Injection

Prepared Statements Magic Quotes MSQL Exception mysql_real_escape_string Permisos

METODOS PARA EVITAR LA

INYECCIÓN SQL

Page 17: SQL Injection

No todas las bases de datos ofrecen esta caracteristica

Evita la ejecucion multiple de ordenes(consultas)

Tambien separan los datos de la consulta

separan la sentencia SQL de los datos que vamos a usar.

PREPARED STATEMENTS

Page 18: SQL Injection

MSQL Exception.- function no permite realizar consultas múltiples en una sola llamada

Magic Quotes.- magic_quotes_gpc, provee de una protección rudimentaria, si está habilitado, magic_quotes_gpc o magiq Quotes inserta un barra (backSlash) delante de una comilla simple

MÉTODOS PARA EVITAR SQL INJECTION

Page 19: SQL Injection

mysql_real_escape_string:

Evita todos los caracteres especiales del parámetro $name argumento, teniendo en cuenta el juego de caracteres usado en la conexión, de forma que sea segura usarla con Mysql_query.

Permisos.- el usuario que accede a la base de datos usado por la aplicación web tiene solamente los permisos mínimos

Un administrador desactiva SHOW_ERRORS y SHOW_WARNINGS para evitar mostrar información

INYECCIÓN SQL EN MYSQL

Page 20: SQL Injection

SQLMap

Sistemas Multiagentes

SQLMap

Amnesia

HERRAMIENTAS DE DETECCION AUTOMATICA

Page 21: SQL Injection

SISTEMA MULTIAGENTE ORIENTADA A LA DETECCIÓN DE

ATAQUES BASADOS EN INYECCIÓN SQL.

Page 22: SQL Injection

Con esta herramienta se puede ejecutar comandos arbitrarios en el sistema operativo, y muchas tareas más.

O todo el volcado de las tablas/columnas, especifica el dbms, ejecuta su propio SQL SELECT, leer archivos específicos en el sistema de archivos y mucho mas.

SQLMAP

Page 23: SQL Injection

Desarrollado por la empresa NOSEC

Automatiza el análisis de seguridad, detección y ejecución de Inyección SQL.

Tiene una versión gratuita y una versión de paga.

PANGLIN

Page 24: SQL Injection

Investigadores del sitio de seguridad WEBSENSE detectaron un masivo ataque de tipo Inyeccion SQL

A mas de 380000 url’s y han bautizado este ataque con el nombre LizaMoon

Page 25: SQL Injection

Los Ataques por SQL Injection son realmente peligrosos, no únicamente por la capacidad de daño que conllevan, sino porque son vulnerabilidades que muchos programadores no corrigen a tiempo (ni se preocupan, a posteriori, de hacerlo).

"LA SEGURIDAD INFORMÁTICA NO ES UN PRODUCTO SINO UN PROCESO"

CONCLUSIONES/RECOMENDACIONES