ATAQUES POR INYECCION DE CODIGO SQL

Slides:



Advertisements
Presentaciones similares
Presentación – Web Attack
Advertisements

1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
Internet y tecnologías web
SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
CRISTINA TIGLLA NOVENO F
Introducción a Transact-SQL
USUARIOS DE JOOMLA! Usuarios de Joomla Introducción
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
ADMINISTRACION DE REDES SECUENCIA DE COMANDOS EN SITIOS CRUZADOS(XSS)
Acceso a bases de datos MySQL en PHP
Desarrollo de sitios web con PHP y MySQL Tema 3: Formularios José Mariano González Romano
¿QUÉ SON LAS BASES DE DATOS?
ADO ActiveX Data Object.
Curso de PHP Tema 3: Formularios.
Curso de PHP Tema 6: Seguridad.
Inyección de SQL.
Software Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos.
4.3. Privilegios de usuarios
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Definición de Datos Conceptos básicos.
TRABAJO DE SISTEMAS R EFERENCIA D IRECTA I NSEGURA A O BJETOS REALIZADO POR : DEISY MOSQUERA KARINA CHAVERRA.
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
MySQL M.C. Pedro Bello López.
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
Los Diez Riesgos Más Importantes en Aplicaciones WEB Top A1-Inyección Oscar William Monsalve Luis Alberto Suarez Jorge Eliecer Betancur Diana Marcela.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
EXPLOITEXPLOIT Equipo 3Equipo 3. Exploit: Es un programa o código que "explota" una vulnerabilidad del sistema o de parte de él para aprovechar esta deficiencia.
TRABAJO DE SISTEMAS R EFERENCIA D IRECTA I NSEGURA A O BJETOS REALIZADO POR : DEISY MOSQUERA KARINA CHAVERRA.
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Administración del DBMS E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
CONCEPTOS BASICOS SQL SERVER SEBASTIAN MARTINEZ GARCIA.
INSTITUTO DE ESTUDIOS SUPERIORES DE CHIHUAHUA COMPUTACION Ciclo: segundo cuatrimestre Lic. Roberto Servando Roque Corona.
COMANDOS SQL.
Top 25 errores de la programación
Bases de datos:MYSQL. ¿Qué es una base de datos? Colección de datos persistentes, relacionados y estructurados. Persistentes: se almacenan en archivos.
UD 1: “Adopción de pautas de seguridad informática” Análisis de las principales vulnerabilidades de un sistema informático. Luis Alfonso Sánchez Brazales.
REFERENCIA DIRECTA INSEGURA A OBJETOS
Introducción a ataques de tipo inyección: Inyección SQL
LENGUAJE SQL.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
LENGUAJE ESTRUCTURADO DE CONSULTAS
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López 24/09/ Adrián de la Torre López.
Diseño de una base de datos y elementos básicos Integrantes: López Ponce de León José Efrén Velazquez Martínez Brenda Equipo:10Grupo:307.
 SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación.
FACULTAD: CIENCIAS ECONÓMICAS Y EMPRESARIALES ASIGNATURA: GESTIÓN DE CONTENIDO ELECTRÓNICO TÍTULO: TINFOPATH - VENTAJAS Y USO. AUTORA: MARIA DANIELA TOMALÁ.
Introducción a la Optimización de Consultas. Francisco Moreno.
File Transfer Protocol.
Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que.
Unidad 4 SEGURIDAD 4.1 Tipos de usuarios
Tema 11 Bases de Datos y el Lenguaje SQL
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Secuencia de Comandos en Sitios Cruzados XSS
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
A NÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez.
Alberto Rivera Tavera Microsoft Student Partner
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Análisis de las principales vulnerabilidades de un sistema informático. Javier Rodríguez Granados.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
SEGURIDAD TELEMÁTICA. VISIÓN ACTUAL Y DE FUTURO.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Administrador de Bases de Datos.  Características:  Libre.- puede descargarse de forma gratuita  Facilidad de uso.- gracias a aplicaciones como phpMyAdmin.
Introducción a phpmyadmin índice 1. Introducción 6. Insertar registros 5. Crear usuario para php 8. Modificar registros 2. Base de datos MySQL 3. Crear.
DML Transact SQL Sesión IX Introducción a los procedimientos almacenados.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Transcripción de la presentación:

ATAQUES POR INYECCION DE CODIGO SQL

ATAQUES POR INYECCION DE CODIGO SQL Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado. El ataque por inyección de código SQL se produce cuando no se filtra de forma adecuada la información enviada por el usuario. Un usuario malicioso podría incluir y ejecutar textos que representen nuevas sentencias SQL que el servidor no debería aceptar. Este tipo de ataque es independiente del sistema de bases de datos subyacente, ya que depende únicamente de una inadecuada validación de los datos de entrada. Como consecuencia de estos ataques y dependiendo de Los privilegios del usuario de base de datos bajo el cual se ejecutan las consultas, se podría acceder no solo a las tablas relacionadas con la operación de la aplicación del servidor Web, sino también a las tablas de otras bases de datos alojadas en el mismo servidor Web. También pueden propiciar la ejecución de comandos arbitrarios del sistema operativo del equipo del servidor Web.

Ataques por inyección de código SQL Ejemplos de ataques Obtención de la base de datos completa usando sentencias SELECT Modificación o inserción de datos usando INSERT o UPDATE Borrado de la base de datos usando DELETE Ejecución de comandos del sistema operativo usando EXEC master.dbo.xp_cmdshell por ejemplo, el valor de pass sería  pass=hack' EXEC master.dbo.xp_cmdshell'cmd.exe dir c:'-- Apagado remoto del servidor pass=hack' EXEC master.dbo.xp_cmdshell'cmd.exe shutdown'--

Si se tiene la siguiente pagina web: Ataques por inyección de código SQL Si se tiene la siguiente pagina web:   Simula una aplicación que requiere identificación de usuario y password. Si se intenta entrar un usuario y password al azar la aplicación dirá “Acceso denegado” El login y password correcto son: “admin” y “admin1234”. Se puede comprobar introduciéndolo.

Ahora se va a conseguir acceso PERMITIDO usando inyección SQL, Ataques por inyección de código SQL Ahora se va a conseguir acceso PERMITIDO usando inyección SQL, sin conocer ni el Login ni el Password. ¿Por qué permite la entrada?

Otras variantes en el campo login Variantes de Consultas Ataques por inyección de código SQL Otras variantes en el campo login Variantes de Consultas Input del usuario Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '% Resultado SELECT * FROM usuarios WHERE nombre = 'Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%';

¿Qué Bases de datos son susceptibles a Inyección SQL? Ataques por inyección de código SQL ¿Qué Bases de datos son susceptibles a Inyección SQL? MySQL Se ejecuta con privilegios de 'root' por defecto Volcado a ficheros con INTO OUTFILE La ejecución de sentencias múltiples es POCO PROBABLE, pocos módulos lo permiten Oracle y DB2 La ejecución de sentencias múltiples NO está permitida Anidamiento de consultas SELECT y uso de UNION posible Uso de procedimientos invocables desde la inyección Postgres  La ejecución de sentencias múltiples SI está permitida Uso de COPY posible como súper usuario MS SQL  Uso de procedimientos invocables desde la inyección (mención especial de 'xp_cmdshell' )

SEGURIDAD CONTRA SQL INJECTION ¿QUE HACER CONTRA ESTA VULNERABILIDAD? Ataques por inyección de código SQL SEGURIDAD CONTRA SQL INJECTION ¿QUE HACER CONTRA ESTA VULNERABILIDAD? Auditoría de código mediante herramientas Ofrecen resultados satisfactorios en la detección de vulnerabilidades fáciles de identificar y ahorran mucho tiempo. Ej: Acunetix Web Vulnerability Scanner y Netcraft Verificar siempre los datos que introduce el usuario Si se espera recibir un entero, es mejor verificar. Igualmente si es un long un char, un varchar, o cualquier tipo. Si se prefiere también se puede convertir al tipo de dato que se espera. Comprobar también la longitud de las cadenas o su formato. Con esto se evitará posibles técnicas avanzadas de inyección SQL. Comprobar el contenido de las variables de cadena y aceptar únicamente valores esperados. Rechace las especificaciones que contengan datos binarios, secuencias de escape y caracteres de comentario. Esto puede impedir la inyección de scripts y puede servir de protección frente a explotaciones de saturación del búfer.

SEGURIDAD CONTRA SQL INJECTION Ataques por inyección de código SQL SEGURIDAD CONTRA SQL INJECTION Utilizar procedimientos almacenados para validar los datos indicados por el usuario. Implementar varias capas de validación. Las precauciones que se tome contra usuarios malintencionados ocasionales pueden resultar ineficaces contra piratas informáticos con determinación. Lo más recomendable es validar los datos especificados por el usuario en la interfaz de usuario y, después, en todos los puntos posteriores en que atraviesen un límite de confianza. Si es posible, rechace los datos que contengan los siguientes caracteres:

Pangolín: Automatización de inyección SQL: Ataques por inyección de código SQL HERRAMIENTAS http://www.taringa.net/posts/linux/15058932/Miedo-a-una-injeccion-SQL - -8-Tool_s-para-enfrentarlas.html SQLiHelper 2.7: SQL Injection : www.hacktimes.com/sqlihelper_2_7_sql_injection/ Pangolín: Automatización de inyección SQL: www.hacktimes.com/pangolin_automatizaci_n_de_inyecci_n_sql/ SQLMap: sqlmap.org Enema: SQL Injection and Web Attack Framework: code.google.com/p/enema/ MultiInjector - Herramienta Automática de Inyección SQL: dragonjar.org/multiinjector-herramienta-automatica-de-inyeccion-sql.xhtmal VIDEOS DE INTERES http://www.youtube.com/watch?v=PB7hWlqTSqs&feature=related http://www.youtube.com/watch?v=-uqotuscuQE&feature=related

Gracias por su atención Mayra Alejandra Pérez Durán alejandrak30@gmail.com 13 de Julio de 2012