Inyección SQL
Análisis de Seguridad en TI
Integrantes:
• Víctor Hugo González
• Sergio Cerón
• Juan Carlos Carrillo
Objetivo
Identificar por medio de inyección SQL vulnerabilidades en una página web yposteriormente acceder a la base de datos de dicha página.
Inyección SQL
¿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 sebasa de una vulnerabilidad informática que se encuentra presente enuna 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 oatacar una aplicación a través de comandos SQL.
• Se puede atacar cualquier tipo de aplicación que use una base datos, ouna aplicación web, es decir puede estar en todo tipo de lenguajes deprogramació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?
• 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.
Ocurren errores en SQL por la ignorancia del lenguaje, pero este
código puede ser
reparado por programadores o
administradores de BD.
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
Ejemplos
BIOMEDICOS
1. Por medio del programa WEBCRUISER se escanearon ydetectaron las vulnerabilidades de las 2 páginas web, presentandolos siguientes resultados:
Procedimiento
Biomedicos.com.mx
Casaveerkamp.com
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
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 yclaves de accesos de usuarios.
Datos Personales de pacientes
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
Top Related