Lección 7: INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL



Documentos relacionados
The Open Web Application Security Project

VÍDEO intypedia007es LECCIÓN 7: SEGURIDAD EN APLICACIONES WEB. INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL. AUTOR: Chema Alonso

S E G U R I D A D E N A P L I C A C I O N E S W E B

Introducción a ataques de tipo inyección: Inyección SQL

FORMACIÓN PRESENCIAL ESPECIALIZADA - SEGURIDAD EN ENTORNOS WEB - MODULO I ENTORNO DE DESARROLLO WEB. MYSQL+PHP AUDITOR DE SEGURIDAD EN ENTORNOS WEB.

Aplicaciones seguras con ClaseSeguridad

Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13

Inyección SQL. Juan Manuel Espinoza Marquez CFT San Agustín Linares -2012

Bypass WAFs KUNAK CONSULTING. Automatizando SQLi con Python. Omar Palomino.

SQL Injection en SQL Server y función convert()

Solución al Reto Hacking v2.0 de Informática 64

Web : Ataque y Defensa. Claudio Salazar Estudiante Ing. Civil Informática UTFSM Pinguinux Team

Sesión 13. Seguridad en la web. Luisa Fernanda Rincón Pérez

Ataques XSS en Aplicaciones Web

AGENDA. Mejorando la Seguridad en Aplicaciones Web. Introducción. La Web Promesas y Amenazas. Asegurando la Red y el Servidor de Web

RETO HACKER DE VERANO

Pruebas de Intrusión de Aplicación

Su Seguridad es Nuestro Éxito

Oracle 12c DISEÑO Y PROGRAMACIÓN

Christian Martorella - Vicente Díaz Edge-security Fist Conference April 2007

Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US

SECURITY DAY PERU. Ataques a las Aplicaciones Web. Explotación de Aplicaciones Web. Technologies SOLUTIONS FOR KEEPING YOUR BUSINESS UP

select nombre from profesores where categoria='aso6';

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

Ataques a Aplicaciones de Bases de Datos

Gobierno de Canarias. Consejería de Industria Comercio y Nuevas Tecnologías Dirección General de Telecomunicaciones y Sociedad de la Información

SQL Injection. 1º Edición - 11 y 12 de Mayo Montevideo, Uruguay

SFX-SQLi SELECT FOR XML SQL INJECTION

Cumplimiento Regulatorio

ADMINISTRACIÓN DE BASE DE DATOS

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

PHP && Web 2.0. Ing. Mario Uriarte Amaya

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

1

Curso PHP & MYSQL PARA JOOMLA

Seguridad en Aplicaciones Web

Presentación de Servicios. Soluciones Profesionales en Sistemas Web

PHP 5.6 Desarrollar un sitio web dinámico e interactivo

Agenda. I. Presentación II.Antecedentes III.Distintos ámbitos IV.A jugar

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Herramientas. Abril Unidad de Arquitectura y Soporte de Aplicaciones Área de Soluciones, Aplicaciones Especiales y Arquitectura de Software

Software de Comunicaciones (2) Manual de Usuario Consola

SEGURIDAD EN APLICACIONES WEB. Autor: Siler Amador Donado

Pruebas de Seguridad en aplicaciones web segun OWASP Donde estamos... Hacia donde vamos?

Curso de PHP con MySQL Gratis

Programación páginas web. Servidor (PHP)

COMPONENTES SOFTWARE LIBRE BASES DE DATOS

OpenProdoc. ECM Open Source

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Guía práctica de SQL

Qué es una base de datos?

UNIVERSIDAD TECNICA DE MANABI Facultad de Ciencias Informáticas Ingeniería en sistemas. SEGURIDAD INFORMATICA Tema: Mysql Injection

Seguridad en Home Banking. Tendencias de la Tecnología en Seguridad Informática Argentina 2010

Base de datos relacional

SurfCop. Libro blanco técnico

Quienes somos. Eduardo Arriols Roberto Lopez

Recuperación de instancias dañadas usando RMAN

Optimización de Inyecciones SQL

CONTROL DE CONTENIDOS WEB

Capítulo 5: PRUEBAS.

Capítulo 2.- Vulnerabilidades en aplicaciones web.

CURSO DE PROGRAMACIÓN PHP MySQL

ArCERT Jornadas de Seguridad Informática 2009

Programación en Internet Curso Índice

==== Introducción. ==== Buscando un fallo

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Juan Luis García Rambla MVP Windows Security Consultor Seguridad y Sistemas jlrambla@informatica64.com

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

Instalación 07/07/2010. Sesión sobre SQL Server. Gestión de Datos

PROGRAMACIÓN PÁGINAS WEB CON PHP

Microsoft SQL Server 2005

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

Seguridad en Aplicaciones Web

Guía práctica PHP 6. (c) Francisco Charte Ojeda

Nivel Básico/Intermedio. Instalar y Configurar SQL Server Diseñar una Base de Datos. Optimización de consultas

Ataques a Bases de Datos Webinar Gratuito

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012

Guía de Inicio Respaldo Cloud

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN: ÁREA SISTEMAS INFORMÁTICOS.

Sitios y programas recomendados

Amenazas a Aplicaciones Web Ing. Mauricio Andrade Guzmán. Subdirección de Seguridad de la Información/UNAM-CERT

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

Seguridad Informática

Bases de Datos 2. Teórico

ADO.NET con Base de datos SQL Server

Laboratorio de Bases de Datos

Servicios de Seguridad de la Información

CURSO DE SQL SERVER 2005

CAPITULO V: Contribución Teórica y Práctica

MAESTRO DE PHP PHP NIVEL 1

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Principales vulnerabilidades en aplicaciones Web. Christian Martorella Edge-security.com

Técnicas y Procedimientos para la realización de Test de Intrusión

Consultas con combinaciones

Índice general Prácticas Propuestas Resumen Test de repaso Comprueba tu aprendizaje...

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Transcripción:

Lección 7: INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL Chema Alonso chema@informatica64.com Informática 64 Microsoft MVP en Enterprise Security

Incidentes de Seguridad I: Kaspersky 2

Incidentes de Seguridad II: NASA Descifrar 3

Arquitectura de una aplicación Web DCOM LDAP WebServer Browser WebServer WebService Descifrar BBDD RPC Interfaz de Usuario (GUI) Lógica de la Aplicación Almacén De Datos 4

OWASP Top 10 Descifrar 5

Inyecciones de Código Aplicaciones con mala comprobación de datos de entrada. Datos de usuario. Formularios Cookies. Datos de llamadas a procedimientos. Links Funciones Scripts Actions Descifrar Datos de usuario utilizados en consultas a base de datos. Mala construcción de consultas a bases de datos. Ataques SQL Injection, LDAP Injection, Xpath Injection. 6

Inyecciones de Código: Ejemplo Autenticación de usuario contra base de datos. Usuario Clave **************** Select idusuario from tabla_usuarios Where nombre_usuario= $usuario And clave= $clave ; Descifrar 7

Inyecciones de Código: Ejemplo Usuario Clave Administrador or 1 = 1 Select idusuario from tabla_usuarios Where nombre_usuario= Administrador And clave= or 1 = 1 ; 8

Impacto Permiten al atacante: Saltar restricciones de acceso. Elevación de privilegios. Extracción de información de la Base de Datos Parada de SGBDR. Ejecución de comandos en contexto usuario bd dentro del servidor. 9

Tipos de Ataques: Inbound Acceso a información con procedimientos de listado. http://www.miweb.com/prog.asp?parametro1=hola http://www.miweb.com/prog.asp?parametro1= union select nombre, clave,1,1,1 from tabla_usuarios; otra instrucción; xp_cmdshell( del c:\boot.ini ); shutdown -- o http://www.miweb.com/prog.asp?parametro1=1 http://www.miweb.com/prog.asp?parametro1=-1 union select...; otra instrucción; -- 10

Tipos de Ataques: Outbound El atacante vuelca datos utilizando los mensajes de error de la aplicación y el repositorio de datos 11

Ataques a ciegas La aplicación Web no muestra ningún mensaje de error. No es posible un ataque outbound La aplicación no procesa comandos No es posible un ataque inbound Se inyectan condicionantes True y False. Ejemplo: http://server/miphp.php?id=1 and 1=1 http://server/miphp.php?id=1 and 1=2 12

Ataques a ciegas Como reconocer diferentes comportamientos? Da un código de error Da una página de error Cambia el hash de la firma Cambia el árbol html Tarda más en responder Si la página reacciona de forma diferente a inyecciones True y False, entonces se puede extraer datos haciendo búsquedas booleanas http://www.servidor.com/mostrar_noticias.php?v_id=1 and (100=(select top 1 ascii(substring(login,1,1)) from usuarios)) 13

Ataques basados en tiempos Si el contenido de la respuesta es idéntico en ambos casos, aún es posible conseguir nuestro objetivo variando condicionalmente el tiempo de respuesta del servidor Si la condición inyectada es verdadera, la aplicación tardará unos segundos en contestar Si la condición es falsa, la aplicación devolverá la misma respuesta, pero en el tiempo habitual Se pueden utilizar las mismas técnicas de inyección descritas anteriormente 14

Inyección SQL basada en tiempos Cómo podemos conseguir el retardo? Utilizando instrucciones de retardo implementadas en el propio gestor de bases de datos SQL Server: waitfor delay Oracle: dbms_lock.sleep MySQL: sleep Postgres: pg_sleep Utilizando consultas pesadas que consuman muchos recursos del servidor (CPU o memoria) CROSS JOIN que involucren muchas tablas De cualquier otra forma (ej: xp_cmdshell 'ping ') 15

Contramedidas No confianza en medias de protección en cliente. Comprobación de datos de entrada. Construcción de sentencias SQL con componentes seguros. Fortificación de Servidor Web. Códigos de error. Restricción de verbos, longitudes, etc Filtrado de contenido HTTP en Firewall (WAF). Fortificación de SGBD. Restricción de privilegios de motor/usuario de acceso desde web. Aislamiento de bases de datos. 16

Contacto: info@intypedia.com