Inyección SQL
Análisis de Seguridad en TI

Integrantes:
•
Víctor Hugo González
•
Sergio Cerón
•
Juan Carlos Carrillo
Inyección SQL
Objetivo
Identificar por medio de inyección SQL vulnerabilidades en una página web y
posteriormente acceder a la base de datos de dicha página.

¿Qué son?
¿Cómo funcionan?
¿Como se evitan?
Definición - SQL Injection
• Son técnicas o métodos de infiltración de código malicioso que se
basa de una vulnerabilidad informática que se encuentra presente en
una aplicación para realizar consultas de datos a una base de datos.
• Es la técnica utilizada por personas maliciosas con el fin de alterar o
atacar una aplicación a través de comandos SQL.
• Se puede atacar cualquier tipo de aplicación que use una base datos, o
una aplicación web, es decir puede estar en todo tipo de lenguajes de
programación como por ejemplo PHP, JAVA, PERL, C#, ASP, etc.
Blind SQL injection
El BLIND SQL Injection se
considera un ataque a
ciegas, es decir, sin
conocer nada sobre el
server (Versión de SQL,
nombre de las tablas,
numero de tablas, etc, que
deberemos saber para
concluir el ataque y para
saber defendernos.)
¿Cómo funciona?
Ocurren errores en SQL
por la ignorancia del
lenguaje, pero este
código puede ser
reparado por
programadores o
administradores de BD.

• Se inserta lenguaje para alterar el contenido y su funcionamiento
normal para ejecutarlo en la base de datos.
• El lenguaje que se incerta son sentencias de base de datos, de
manera que nos muestre información que nos ayude a obtener lo
que buscamos.
Ejemplos
En este primer ejercicio se utilizará inyección SQL a las siguientes páginas
Web : http://www.biomedicos.com.mx y http://www.casaveerkamp.com

CASAVEERKAMP

BIOMEDICOS
Procedimiento
1. Por medio del programa WEBCRUISER se escanearon y
detectaron las vulnerabilidades de las 2 páginas web, presentando
los siguientes resultados:
Biomedicos.com.mx
Casaveerkamp.com
Procedimiento
2.

Después de identificar la vulnerabilidad se deberá de seleccionar y copiar a la
herramienta HAVIJ. Esta herramienta nos permite identificar y vulnerar la base de datos,
dando como resultado la obtención del nombre de la base de datos “biomedicos” así como
sus respectivas tablas, campos y registros.
Procedimiento
3.

Ahora que ya tenemos identificado el nombre de la base de datos, se
pueden ya identificar las tablas, campos y registros. En el ejemplo
presentado con la página de biomedicos, se identificaron tablas donde
podremos obtener datos personales de pacientes, listas de precios de servicios y
claves de accesos de usuarios.

Datos Personales
de pacientes
Listas de Precios Servicios
Claves de acceso
Procedimiento
4. A través de la herramienta HAVIJ se encontró la página principal de
administración del portal, por lo que se podrá tener acceso al portal de
administración teniendo los permisos correctos (obtenidos anteriormente).
Reporte de inyección o vunerabilidad
Se encontró en la página de biomedicos, un error de programación
en el archivo sucursales.php
Recomendaciones
¿Cómo evitar una vulnerabilidad?
Para prevenir inyecciones de vulnerabilidad se debe de reforzar las
mejores prácticas de codificación e implementación de
procedimientos en las bases de datos, se recomienda seguir las
mejores practicas por ejemplo:






Deshabilitar mensajes de error que den información al atacante
Proteger la contraseña del administrador de la base de datos (sa)
Asegurarse que el código fuente sea auditable
Restringir longitud en las claves
Evitar contraseñas sencillas
Más información en Internet

http://www.owasp.org
¡Gracias!

1 sq linjection

  • 1.
    Inyección SQL Análisis deSeguridad en TI Integrantes: • Víctor Hugo González • Sergio Cerón • Juan Carlos Carrillo
  • 2.
    Inyección SQL Objetivo Identificar pormedio de inyección SQL vulnerabilidades en una página web y posteriormente acceder a la base de datos de dicha página. ¿Qué son? ¿Cómo funcionan? ¿Como se evitan?
  • 3.
    Definición - SQLInjection • Son técnicas o métodos de infiltración de código malicioso que se basa de una vulnerabilidad informática que se encuentra presente en una aplicación para realizar consultas de datos a una base de datos. • Es la técnica utilizada por personas maliciosas con el fin de alterar o atacar una aplicación a través de comandos SQL. • Se puede atacar cualquier tipo de aplicación que use una base datos, o una aplicación web, es decir puede estar en todo tipo de lenguajes de programación como por ejemplo PHP, JAVA, PERL, C#, ASP, etc.
  • 4.
    Blind SQL injection ElBLIND SQL Injection se considera un ataque a ciegas, es decir, sin conocer nada sobre el server (Versión de SQL, nombre de las tablas, numero de tablas, etc, que deberemos saber para concluir el ataque y para saber defendernos.)
  • 5.
    ¿Cómo funciona? Ocurren erroresen SQL por la ignorancia del lenguaje, pero este código puede ser reparado por programadores o administradores de BD. • Se inserta lenguaje para alterar el contenido y su funcionamiento normal para ejecutarlo en la base de datos. • El lenguaje que se incerta son sentencias de base de datos, de manera que nos muestre información que nos ayude a obtener lo que buscamos.
  • 6.
    Ejemplos En este primerejercicio se utilizará inyección SQL a las siguientes páginas Web : http://www.biomedicos.com.mx y http://www.casaveerkamp.com CASAVEERKAMP BIOMEDICOS
  • 7.
    Procedimiento 1. Por mediodel programa WEBCRUISER se escanearon y detectaron las vulnerabilidades de las 2 páginas web, presentando los siguientes resultados: Biomedicos.com.mx Casaveerkamp.com
  • 8.
    Procedimiento 2. Después de identificarla vulnerabilidad se deberá de seleccionar y copiar a la herramienta HAVIJ. Esta herramienta nos permite identificar y vulnerar la base de datos, dando como resultado la obtención del nombre de la base de datos “biomedicos” así como sus respectivas tablas, campos y registros.
  • 9.
    Procedimiento 3. Ahora que yatenemos identificado el nombre de la base de datos, se pueden ya identificar las tablas, campos y registros. En el ejemplo presentado con la página de biomedicos, se identificaron tablas donde podremos obtener datos personales de pacientes, listas de precios de servicios y claves de accesos de usuarios. Datos Personales de pacientes
  • 10.
    Listas de PreciosServicios Claves de acceso
  • 11.
    Procedimiento 4. A travésde la herramienta HAVIJ se encontró la página principal de administración del portal, por lo que se podrá tener acceso al portal de administración teniendo los permisos correctos (obtenidos anteriormente).
  • 12.
    Reporte de inyeccióno vunerabilidad Se encontró en la página de biomedicos, un error de programación en el archivo sucursales.php
  • 13.
    Recomendaciones ¿Cómo evitar unavulnerabilidad? Para prevenir inyecciones de vulnerabilidad se debe de reforzar las mejores prácticas de codificación e implementación de procedimientos en las bases de datos, se recomienda seguir las mejores practicas por ejemplo:      Deshabilitar mensajes de error que den información al atacante Proteger la contraseña del administrador de la base de datos (sa) Asegurarse que el código fuente sea auditable Restringir longitud en las claves Evitar contraseñas sencillas
  • 14.
    Más información enInternet http://www.owasp.org
  • 15.