METODOLOGÍA DE PRUEBAS DE INYECCIÓN SQL PARA ENTORNOS WEB

Tamaño: px
Comenzar la demostración a partir de la página:

Download "METODOLOGÍA DE PRUEBAS DE INYECCIÓN SQL PARA ENTORNOS WEB"

Transcripción

1 METODOLOGÍA DE PRUEBAS DE INYECCIÓN SQL PARA ENTORNOS WEB Gerson Geovanny Delgado Caballero 1 Universidad Pontificia Bolivariana Bucaramanga, Colombia Resumen La naturaleza de las aplicaciones Web, principalmente por el amplio mercado que ofrecen y por la capacidad de permitir su acceso a personas de todo el mundo las ha convertido en un flanco de ataque por parte de delincuentes cibernéticos, entre las técnicas encontradas para vulnerar los sitios Web se encuentra la inyección SQL la cual generalmente involucra las base de datos de un sitio Web, de ahí su nombre y se basa principalmente en explotar la relación que existe entre la aplicación y el servidor de base de datos. Esta relación es explotada para atacar la base de datos directamente a través de la aplicación, utilizando el servidor de base de datos para atacar otros sistemas en la organización. Con el presente artículo se busca proveer la suficiente información para que el lector pueda entender ésta técnica de ataque, además que logre dimensionar su alcance, causas y consecuencias. Este artículo no cubre la sintaxis SQL de base de base datos. Se supone que el lector tiene una sólida comprensión de estos temas. Este documento se centrará en definir qué es una inyección SQL, identificar una metodología de pruebas, identificar las técnicas de evasión y la forma de defenderse. Palabras claves Inyección SQL, ataque, seguridad, aplicaciones Web. 1 Gerson Geovanny Delgado Caballero, Ingeniero de Software y Comunicaciones. Especialista en Telecomunicaciones.

2 Abstract The nature of Web applications, mainly for the broad market offering and the ability to allow access to people around the world, has become a flank attack by cybercriminals, among the techniques found to infringe sites Web is SQL injection which usually involves a database of Web site, hence its name and is mainly based on exploiting the relationship between application server and database. This relationship is exploited to attack the database directly through the application using the database server to attack other systems within the organization. The present article seeks to provide sufficient information to enable the reader to understand this attack technique that achieves dimension also its scope, causes and consequences. This article does not cover the basic syntax of SQL database. It is assumed that the reader has a solid understanding of these issues. This paper will focus on defining who is a SQL injection, to identify a test methodology to identify the evasion techniques and how to defend themselves. Keywords: SQL injection, attack, security, Web applications. 1. Introducción Las aplicaciones en ambiente Web ofrecen a todo tipo de atacantes cibernéticos un mercado amplio y exquisito porque encuentran en ellas un punto de convergencia de un número muy importante de organizaciones y usuarios a nivel mundial más aún cuando éstas cada día se enriquecen cada vez con mejores contenidos como multimedia, música, información de todo tipo, entretenimiento, entre otras muchas ventajas, adicionalmente porque comercialmente tienen gran acogida por todo tipo de empresas independientemente de su objeto social. Lograr vulnerar estos sitios de encuentro común con el fin de obtener determinados beneficios es una tarea que cada vez mejoran más los atacantes cibernéticos, una técnica utilizada con gran frecuencia y con buenos resultados es la inyección SQL. Esta técnica permite que un atacante logre con esta vulnerabilidad de inyección SQL recuperar el contenido de la base de datos detrás de un firewall y de esta manera penetrar en la red interna, además puede causar la contaminación de toda la información sensible almacenada en la base de datos de una aplicación, incluida la información útil como nombres de usuario, contraseñas, direcciones, números de teléfono, datos de la tarjeta de crédito, entre otros. Entre los grandes problemas que enfrentan los administradores ante ataques de este tipo, es que es una de las vulnerabilidades más devastadoras para el impacto de un negocio ya que permite a los usuarios remotos acceder a información confidencial. La mayor importancia que se le da a este ataque radica en que el atacante aprovecha la sintaxis y las funcionalidades que le brinda el SQL 2 en sí mismo, para la ejecución de dichas consultas, lo cual lo hace potencialmente peligroso ya que con ello puede realizar en el servidor 2 SQL (Structured Query Language, Lenguaje Estructurado de Consultas).

3 de base de datos casi cualquier cosa que le sea permitida realizar. Así como existe el ataque existe la forma de protegerse de ellos y no se requiere implementar acciones extraordinarias que involucren una demora tan significativa en el desarrollo de las aplicaciones que prolongue de manera exagerada la puesta en producción del mismo, más aún cuando los propios lenguajes de programación y servidores Web ofrecen mecanismos para contrarrestar este tipo de ataques. Mediante la información proporcionada por este artículo el lector comprenderá la importancia de implementar las medidas de seguridad necesarias para minimizar el riesgo de sufrir ataques de tipo Inyección SQL y con ello crear aplicaciones más seguras y confiables. 2. Qué es la inyección SQL? La inyección SQL es un tipo de ataque en el que el atacante incluye declaraciones SQL malintencionados, a través de campos de entrada de cualquier tipo de software que precise del uso de base de datos, o una aplicación web que interactúe con una base de datos para funcionar, el cual se aprovecha de las vulnerabilidades que tienen dichas aplicaciones debido a que el desarrollador acepta que los datos del usuario se almacenen o depositen directamente en una sentencia SQL y no filtran correctamente los caracteres peligrosos.[1][2][3][4]. Tabla 1. Comandos DCL, DDL, DML, Cláusulas y Operadores de Comparación Tomado de:

4 La Inyección SQL recibe su nombre debido a que hace uso del lenguaje llamado SQL. Estas sentencias SQL pueden modificarla estructura de las bases de datos (usando instrucciones del lenguaje de definición de datos, o DDL ) y manipular el contenido de las bases de datos (usando instrucciones del lenguaje de manipulación de datos, o DML ). Dentro de los comandos básicos de SQL, se identifican cuatro grupos principales: Figura 1, Tabla 1 a), b), c), d), e). [5] [6] Los ataques de inyección SQL son ayudados la mayoría de las veces por los mensajes de error detallados y datos sin filtrar devueltos por la aplicación que se muestran en la interfaz del usuario. Con cada error, ayuda al atacante obtener información sobre la base de datos y a crear y a refinar el ataque. Algunos administradores desactivan estos errores (SHOW_ERRORS y SHOW_WARNINGS) para que no se muestren posibles errores provocados en el intérprete

5 SQL, esto hace que la explotación de un posible ataque de inyección SQL sea más difícil pero no imposible, el atacante puede robar datos haciendo una serie de consultas de Verdadero/Falso (Lógica Booleana) a través de sentencias SQL. En la Tabla 6 se puede observar una lista de caracteres muy útiles para la inyección SQL. Estos símbolos son usados es SQL99 3. [7][8][9] Tabla 2. Caracteres para Inyección SQL Tomado de: Aunque la tarea inicial para el atacante es identificar los sitios que poseen este tipo de vulnerabilidad. Casi todas las bases de datos y lenguajes de programación son potencialmente vulnerables: MS SQL Server, Oracle, MySQL, PostgreSQL DB2, MS Access, Sybase, Informix, etc, porque se trata de un problema de validación de entrada que tiene que ser considerado y programado por el desarrollador de aplicaciones web. [9] 3. METODOLOGÍA DE PRUEBAS PARA LA INYECCIÓN SQL 3 La versión SQL3 (También referida por algunos como SQL99).

6 Pasos a seguir: 3.1 Entender el Funcionamiento de la Aplicación Web. Aunque las diferentes aplicaciones se comportan de diferentes maneras, el fundamento es el mismo, debido a que todos los entornos son basados en Web. Hay que observar cómo el navegador envía las peticiones al servidor Web. Las peticiones que se envían al servidor Web pueden ser de dos posibles formas: Visibles (Método GET) u ocultos (Método POST). Como se observa en la figura 2. El usuario realiza a través del navegador la petición de una página Web. El servidor Web identifica la solicitud que para este caso, es una página dinámica, por lo tanto esta debe ser interpretada por el motor de PHP el cual ejecuta el código. Dentro del código se obtiene el valor de las variables enviadas por el usuario, con base en ello procede a conectarse al servidor de base de datos para realizar la respectiva consulta. Finalmente el resultado de la ejecución del código PHP, es tomado por el servidor Web para ser enviado al navegador del usuario como respuesta a su solicitud. Algunas veces, la respuesta incluirá un error de SQL de la base de datos, esto ayuda a obtener información importante, sin embargo, otras veces hay que estar concentrado y detecta diferencias sutiles. [6][12][13] 3.2 Validar Entradas y Recopilar Información.

7 La Inyección SQL se puede presentar en cualquier parte de la aplicación Web, por esta razón se identifican todas las entradas de datos en la aplicación web, qué tipo de solicitud podría provocar anomalías y detectar las anomalías en la respuesta del servidor. Se realizan las validaciones para de esta manera encontrar una entrada vulnerable en la aplicación Web. Una vez detectadas las anomalías el siguiente paso es reunir la mayor información posible acerca de la aplicación Web a través de lo siguiente: Los mensajes de error: Estos mensajes de error generan información valiosa. Diversas bases de datos permiten y requieren diferentes sintaxis SQL. Definir el tipo de motor de base de datos es fundamental para las siguientes etapas. La mayoría de los mensajes de error indican con qué base de datos están trabajando. Al identificar el sistema operativo y el servidor web a veces es más fácil deducir la posible base de datos. Entender la consulta: La consulta, puede ser un "SELECT", "UPDATE", "INSERT" o algo más complejo. Es importante determinar lo que el formulario o la página está tratando de hacer con la entrada para determinar en qué parte modificar la consulta. [6][9][11][12][13] 3.3 Determinar el Nivel de Privilegios de Usuario, el Nombre y la Versión de la Base de Datos. Con el uso de caracteres específicos puede saber con certeza la versión de la base de datos. Pero para esto es fundamental identificar el número de columnas de la tabla o campos seleccionados en la consulta. Esto se logra a través de la utilización de la clausula ORDER BY. La cual le permite ordenar los resultados en función de los campos que hayan sido seleccionados en la consulta. La consulta anterior (Ejemplo 1) ordena los campos por apellido. Otra alternativa para indicar el nombre del campo es utilizando su posición. Con esta consulta (Ejemplo 2) se podrá ir ordenando por el primer campo, luego por el segundo y así de forma incremental hasta generar un error de este tipo: La posición 3 no existe porque solo se

8 seleccionaron 2 campos (nombre y apellido), por esta razón genera este tipo de errores. Cuando esto suceda se sabrá cuantos campos se seleccionaron en la consulta sin necesidad de mirar el código fuente o la estructura de la consulta. Identificado el número de campos seleccionados en la consulta, se debe determinar cuál de todos esos campos se muestran en la aplicación Web. No todos los campos seleccionados se suelen mostrar en la página Web de respuesta, algunos son utilizados internamente por la aplicación. Determinar qué campos son visibles servirá para mostrar a través de ellos la información que se quiere de la base de datos (el tipo y la versión). Para esto es necesaria la utilización de la cláusula UNION, la cual indica que se debe unir el resultado de la consulta anterior con los resultados de la consulta posterior. Para que esto sea posible las consultas deben tener el mismo número de campos, de lo contrario se generaría un error; por esta razón, es fundamental determinar el número de campos seleccionados en las consultas. Una vez identificados los campos seleccionados, estos permiten realizar las respectivas consultas SQL con los caracteres específicos. [user(), versión(), database()]. La unión de estas dos consultas (Ejemplo 3) muestra como resultado los datos de los usuarios con id 1 y 2. SQL integra varias funciones que funcionan en la mayoría de las bases de datos: user or current_user session_user system_user ' and 1 in (select user ) Estas funciones devuelven el nombre de usuario dentro de un mensaje de error. Para tener el mayor éxito en la inyección SQL se requiere altos niveles de privilegios de usuario. Esto nos indica lo que puede o no puede hacer el usuario, que al final servirá para ahorrar tiempo. [6][8][9][13] 3.4 Realizar el Ataque. Conociendo la información básica de la base de datos, la estructura de la consulta y los privilegios, se procede a iniciar el ataque. Descubrir la estructura de la base de datos. MySQL guarda los metadatos de las bases de datos en una base de datos llamada INFORMATION_SCHEMA (Figura 3), la cual es la base de datos de información, donde se almacena información sobre todas las otras bases de datos que mantiene el servidor MySQL. Dentro de INFORMATION_SCHEMA hay varias tablas de sólo lectura. Aunque se puede seleccionar INFORMATION_SCHEMA como base de datos por defecto con el comando USE, sólo se puede leer el contenido de las tablas, no efectuar operaciones INSERT, UPDATE o DELETE. [6][9] [11][12]

9 Nos enfocaremos en las siguientes tablas: SCHEMATA: Bases de datos. TABLES: Tablas en las bases de datos. COLUMNS: Columnas en las tablas. Enumeración de la base de datos. En MySQL un esquema es una base de datos, por lo tanto la tabla SCHEMATA (Figura 4), proporciona información acerca de las bases de datos. En el campo SCHEMA_NAME se encuentran los nombres de todas las base de datos.[6][9]

10 Enumeración de las tablas del sistema. En MySQL la tabla TABLES (Figura 5) proporciona información acerca de las tablas en las bases de datos. El campo TABLE_SCHEMA contiene información de los nombres de la base de datos y el campo TABLE_NAME contiene el nombre de las tablas. [6][9][11][13] Enumeración de las columnas de las tablas de diferentes bases de datos: Algunos servidores tienen varias bases de datos. Se pueden extraer al interrogar a las tablas del sistema de información de metadatos sobre las bases de datos. En MySQL la tabla COLUMNS (Figura 6) proporciona información acerca de las columnas en las tablas. En el campo COLUMN_NAME se encuentran los nombres de las columnas. Las tablas TABLES y COLUMNS, contienen 3 columnas que son compartidas: TABLE_SCHEMA: Contiene los metadatos de las bases de datos. TABLE_NAME: Contiene el nombre de las tablas. COLUMN_NAME: Contiene el nombre de las columnas de la tabla en cada base de datos. [13][15]

11 3.5 Extracción de Datos. La extracción de los datos es fácil una vez que la base de datos ha sido enumerada y las consultas se han entendido. Estos datos se utilizan para extraer la información o los datos. Extraer el nombre de usuario y contraseña de una tabla definida por el usuario. Extraer los hash de las contraseñas de base de datos. Transferir la estructura de la base de datos y los datos a través de una conexión inversa a un servidor SQL Server local. Crear una estructura de base de datos idéntica. Mediante la transferencia de los metadatos de la base de datos se puede crear la estructura de base de datos en el sistema local. Transferir la base de datos. Creada la estructura, los datos pueden transferirse fácilmente. Este método permite al atacante recuperar el contenido de una tabla incluso si la aplicación está diseñada para ocultar mensajes de error o resultados no válidos de la consulta. [6][9][13] 3.6 Interacción con el Sistema Operativo. Dependiendo del tipo de base de datos y los privilegios que se obtengan es posible interactuar directamente con el sistema operativo subyacente. Dos formas de interactuar con el sistema operativo: Lectura y escritura de archivos del sistema desde disco. Ejecución directa de comandos En ambos casos se verá restringido por los privilegios y permisos del usuario con el que se ejecuta el motor de base de datos. No siempre es posible evadir al sistema operativo para la ejecución directa de comandos a través de la inyección SQL. En la mayoría de base de datos, la ruta de acceso al sistema operativo no es directa. Se debe realizar la búsqueda de contraseñas y en algunos casos reemplazar archivos de configuración para lograr acceder indirectamente. Otra forma de ejecutar comandos es a través de la automatización de Scripts para ActiveX. [9][13] 3.7 Ampliar la influencia. En esta etapa final el atacante puede ampliar su influencia saltando a otras aplicaciones o servidores de base de datos. Vincula estos servidores remotos para comunicarse de forma transparente con ellos y de esta manera realizar consultas distribuidas e incluso controlar estos servidores de base de datos de forma remota y utilizar esa capacidad para acceder a la red interna. También es posible subir archivos a través de una conexión inversa y de una inyección SQL y ejecutar de forma remota procedimientos almacenados, debido que algunos servidores están configurados únicamente para permitir la ejecución remota de dichos procedimientos.[9]

12 4. APLICACIÓN DE LA METODDOLOGÍA. 4.1 Funcionamiento de la Aplicación Web: La aplicación web de ejemplo permite que mediante un formulario de inicio de sesión le pida al usuario su identificador (ID), para que posterior a su validación le muestre al usuario la información o el acceso que la aplicación Web tiene disponible para él. (Figura 7) Al observar la URL de la aplicación se identifican los parámetros que van después del signo de interrogación (?) separados entre si por el signo et (&), estos parámetros indican exactamente el número de ID a consultar en la página Web (Figura 8). Se identifica que el método utilizado es el método GET donde claramente se observa la variable y su valor en la URL Validar Entradas y Recopilar Información: Los mensajes de error. Con el mensaje de error suministrado se puede determinar que la base de datos utilizada en la aplicación es MySQL (Figura 9). Entender la consulta. Identificado en el paso anterior que se utiliza el método GET, se puede deducir en las lineas del codigo PHP (Ejemplo 4) que los valores enviados no tienen ninguna validación. Esta es una posible forma como se obtienen los valores enviados por el usuario:

13 Luego se puede deducir que más adelante se concatena el valor de la variable $id para formar la consulta SQL (Ejemplo 5). Si por ejemplo el $id fuera 1 la consulta quedaría de la siguiente manera (Ejemplo 6): La orden SELECT sirve para consultar registros de la base de datos. En el ejemplo 6 se estarían consultando todos los registros de la tabla users cuyo valor de la columna id sea igual a Determinar el Nivel de Privilegios de Usuario, el Nombre y la Versión de la Base de Datos. Obteniendo el número de campos seleccionados. Figura 10 a), b), c).

14 Identificando los campos que son visibles. Figura 11 a), b).

15 Obteniendo el nombre de la base de datos, el nombre de usuario y la versión de la base de datos. Figura 12 a), b).

16 4.4 Realizar el Ataque. Descubriendo la estructura de la base de datos. Figura 13. Enumeración de la base de datos. Figura 13. Enumeración de las tablas del sistema. Figura 14.

17 Enumeración de las columnas de las tablas de diferentes bases de datos. Figura Extracción de Datos. Información obtenida de la enumeración. Base de datos: dvwa Tabla: users Columnas: user, password Extracción de la información o los datos: Nombre de usuario y contraseña. Figura 16. Hash de las contraseñas. Figura 16.

18 Crackear las contraseñas encriptadas con MD5.

19 Contraseña crackeada: password 4.6 Interacción con el Sistema. Lectura y escritura de archivos del sistema. Figura 19.

20 4.7 Ampliar la Influencia. Subir archivos a través de una conexión inversa o de una inyección SQL. Figura 20.

21 5. TÉCNICAS DE EVASIÓN Y DEFENSA CONTRA INYECCIÓN SQL. Algunas son del tipo predictivo que permiten detectar y bloquear los ataques, incluso en tiempo real y otros son del tipo preventivos. Actualmente existen varias formas para evadir y defenderse de los ataques de inyección SQL. Es importante recordar que las soluciones analizadas son complementarias, en su conjunto las técnicas que se plantean ayudan a conseguir una arquitectura de seguridad multicapa. [18] 5.1 Defensas a Nivel de Código. Es la defensa más eficaz contra los ataques de inyección SQL. [18] Conexiones con mínimos privilegios. Validar los datos especificados por el usuario mediante comprobaciones de tipo, longitud, formato e intervalo. No hacer suposiciones sobre el tamaño, tipo de contenido de los datos que recibirá la aplicación. Comprobar el tamaño y el tipo de los datos especificados y aplique los limites adecuados. Comprobar el contenido de las variables de cadena y aceptar únicamente los valores esperados. Rechazar las especificaciones que contengan datos binarios, secuencias de escape y caracteres de comentario. Para los entornos de varios niveles, todos los datos deben validarse antes de que se admitan en la zona de confianza. Los datos que no superen el proceso de validación deben rechazarse, y debe devolverse un error al nivel anterior.

22 Implementar varias capas de validación, es decir, validar los datos especificados por el usuario en la interfaz de usuario y, después, en todos los puntos posteriores que atraviesen un límite de confianza. No concatene los datos especificados por el usuario que no se hayan validado. Rechazar los datos que contengan diversidad de caracteres. [17] [20] 5.2 Defensas a Nivel de Base de Datos. Nunca confié en su aplicación Web, las aplicaciones cambian a través del tiempo y las vulnerabilidades inesperadas pueden aparecer, por es necesario el realizar el endurecimiento Hardening al servidor de base de datos. En lo posible separar la base de datos del servidor de aplicaciones. Deshabilitar o Restringir el acceso remoto. Deshabilitar el uso de permisos que puedan leer ficheros del sistema operativo desde la base de datos. Cambiar el nombre de usuario y la contraseña del usuario root. Eliminar la base de datos por defecto Test que se distribuye con el servicio. Eliminar las cuentas anónimas y obsoletas. Utilizar privilegios mínimos del sistema. Utilizar privilegios mínimos de la base de datos. Configurar los log. Cambiar el directorio raíz a una partición distinta al sistema operativo. Eliminar el historial de la línea de comandos del usuario de la base de datos. Aplicar actualizaciones de seguridad del sistema operativo y del motor de base de datos. 5.3 Defensas a Nivel de Plataforma. Una defensa a nivel de plataforma es cualquier mejora o cambio de configuración en tiempo real que se puede hacer para aumentar la seguridad global de la aplicación. [12] Aunque la protección en tiempo real proporciona muchos beneficios, es necesario considerar algunos de los costos que pueden estar implicados, pero también existen soluciones de software gratuitas que están disponibles para su descarga en internet. La solución mas conocida en la seguridad de las aplicaciones Web es el uso de un firewall de aplicación Web (WAF). Un WAF es un dispositivo de red o solución basada en software que agrega características de seguridad para una aplicación Web. Uno de los WAF mas utilizados y de código abierto es el ModSecurity, el cual se implementa como un modulo del servidor web Apache. ModSecurity puede proteger prácticamente cualquier aplicación Web, incluso las aplicaciones Web basadas en ASP y ASP.NET. [12][24] Puede utilizar ModSecurity para la prevención de ataques, la vigilancia, la detección de intrusos y en general el endurecimiento de las aplicaciones. [12][24] La fortaleza de ModSecurity es la combinación de directivas de configuración y un lenguaje de programación simple aplicado a las peticiones y respuesta HTTP. El pronóstico generalmente es una acción específica, como permitir el paso de la solicitud, registrar la solicitud o el bloqueo de la misma. GreenSQL es otro firewall de aplicaciones que brinda seguridad a las bases de datos. Soporta MySQL y PostgreSQL en su versión Express y en su versión comercial soporta Microsoft SQL Server. GreenSQL es un firewall de base de datos de código abierto utilizado para la proteger las bases de datos de los ataques de Inyección SQL. Opera como un proxy entre el servidor de base de datos (MySQL, PostgreSQL o Microsoft SQL Server) y la aplicación

23 Web. Su lógica se basa en la evaluación de los comandos SQL utilizando una matriz de calificación de riesgos, así como el bloqueo de comandos conocidos utilizados en la administración de las bases de datos (DROP, CREATE, etc.) GreenSQL puede ser utilizado para operar en los siguientes modos: [23] Modo simulación. (Modo IDS). Bloqueo de comandos sospechosos. (Modo IPS) Modo Aprendizaje. Protección activa para consultas desconocidas. La peticiones que son enviadas a la aplicación Web, se envían a través del puerto de escucha de GreenSQL (Puerto 3305), el cual las analiza y las reenvía al servidor de base de datos. [23] Se recomienda para su configuración inicial habilitar en modo aprendizaje con el objetivo de no generar ningún impacto en las consultas que son enviadas o generadas para la aplicación Web. En este modo todas las consultas se añaden automáticamente a una lista blanca (Whitelist) o lista permitida. Una vez determinadas las consultas que son importantes para la aplicación Web se puede proceder a cambiar al modo de protección activa. Ofrece una intrerfaz gráfica de gestión compatible con los navegadores más comunes, con un conjunto de opciones para su configuración. [23]

24 6. Conclusiones El eslabón más débil en una aplicación Web para que permita ataques de inyección SQL es la poca o ninguna validación de las variables de entrada. Los desarrolladores deben reconocer que la seguridad es un componente fundamental de cualquier producto de software y deben incluir buenas prácticas de programación en el software que se esté desarrollando. Construir la seguridad en un producto es mucho más fácil y mucho más rentable que cualquier intento posterior a la eliminación o mitigación de los defectos descubiertos por los intrusos. Es una de las vulnerabilidades que genera mayor impacto porque permite el acceso a la información sensible o confidencial de una organización o entidad. Los diferentes motores de bases de datos y los mismos lenguajes de programación implementan técnicas para contrarrestar este tipo de ataques pero la principal responsabilidad se encuentra en el desarrollador quien debe validar correctamente las entradas de datos. 7. Agradecimientos Agradecimientos para Dios por las capacidades intelectuales otorgadas, a mis padres por su constante e incondicional apoyo y a todos los autores de las diversas referencias bibliográficas consultadas. 8. Biografía Gerson Delgado nació en Piedecuesta Santander, Especialista en Telecomunicaciones de la Universidad Industrial de Santander Bucaramanga, Colombia en Ingeniero de Software y Comunicaciones de la Universidad de Santander Bucaramanga Colombia en Amplio interés por la seguridad informática, la investigación y las nuevas tecnologías. Actualmente se desempeña como profesional de seguridad informática de una prestigiosa entidad Financiera.

25 9. Referencias [1]. SQL Injection (2010). [Online]. Disponible en: [2]. Sagar, Joshi (2005). SQL Injection Attack and Defense. [Online]. Disponible en: [3]. Kenkeiras (2010). SQL Injection. [Online]. Disponible en: [4]. Litchfield, David (2005). Data-mining with SQL Injection and Inference. [Online]. Disponible en: [5]. Anley, Chris (2002). Advanced SQL Injection In SQL Server Applications. [Online]. Disponible en: plications.sflb.ashx [6]. Racciatti, Hernán (2005). SQL Injection. Tres años después Detección y Evasión. [Online]. Disponible en: %20Deteccion%20y%20Evasion.zip [7]. Blindfolded SQL Injection (2009). [Online]. Disponible en: [8]. Ka0x (2008). Técnicas de inyección en MySQL. [Online]. Disponible en: [9]. Chapela, Víctor (2005). Advanced SQL Injection. [Online]. Disponible en: [10]. OWASP (2010). Open Web Application Security Project. [Online]. Disponible en: [11]. Martorella, Christian (2008). Principales vulnerabilidades en aplicaciones Web. [Online]. Disponible en: [12]. Clarke, Justin (2009). SQL Injection Attacks and Defense. Ed. Syngress Publishing, Inc. [13]. McCray, Joe. Advanced SQL Injection. [Online]. Disponible en: [14]. Warneck, Brad (2007). Defeating SQL Injection IDS Evasion. [Online]. Disponible en: [15]. Inyección SQL en Aplicaciones Web (I) (2007). [Online]. Disponible en:

26 [16]. Anley, Chris (2002). (more) Advanced SQL Injection. [Online]. Disponible en: [17]. Cerullo, Fabio (2010). OWASP Top , Los diez riesgos más importantes en aplicaciones web. [Online]. Disponible en: [18]. Nystrom, Martin (2007). SQL Injection Defenses. Ed. O reilly Media. [19]. Fisk, Harrison (2004). Prepared Statements. [Online]. Disponible en: [20]. SQL Injection Prevention Cheat Sheet (2010). [Online]. Disponible en: [21]. Ramos, Alejandro (2010). Fortificación de MySQL 1/3. [Online]. Disponible en: [22]. OWASP Testing Guide V3.0 (2008). [Online]. Disponible en: [23]. GreenSQL. [Online]. Disponible en: [24]. Modsecurity. [Online]. Disponible en:

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

Introducción a ataques de tipo inyección: Inyección SQL Introducción a ataques de tipo inyección: Inyección SQL Jorge Peris Cortés - jorpecor@alumni.uv.es Asignatura: Redes Ingeniería Informática - Curso 2011/2012 Universidad de Valencia 1 Índice INTRODUCCIÓN...

Más detalles

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

VÍDEO intypedia007es LECCIÓN 7: SEGURIDAD EN APLICACIONES WEB. INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL. AUTOR: Chema Alonso VÍDEO intypedia007es LECCIÓN 7: SEGURIDAD EN APLICACIONES WEB. INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL AUTOR: Chema Alonso Consultor de Seguridad en Informática 64. Microsoft MVP Enterprise Security

Más detalles

Hacking Ético Web. I Jornadas Tecnológicas CEEPS 27-03-2012 Carlos García García i52gagac@uco.es ciyinet@gmail.com. @ciyinet

Hacking Ético Web. I Jornadas Tecnológicas CEEPS 27-03-2012 Carlos García García i52gagac@uco.es ciyinet@gmail.com. @ciyinet Hacking Ético Web I Jornadas Tecnológicas CEEPS 27-03-2012 Carlos García García i52gagac@uco.es ciyinet@gmail.com @ciyinet Índice Introducción OWASP OWASP Top 10 (2010) Demostración ataques Inyección SQL

Más detalles

Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web

Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web ASIT 20070501 CT Pautas de seguridad para aplicaciones web v1 2007-05-16 Documento de Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web Versión 01 ARCHIVO: ASIT 20070501

Más detalles

Desarrollo seguro en Drupal. Ezequiel Vázquez De la calle

Desarrollo seguro en Drupal. Ezequiel Vázquez De la calle Sobre mi Estudios Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Experto en Seguridad de las TIC - US Experiencia Aficiones 3+ años como desarrollador web, casi 2 en Drupal

Más detalles

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

Web : Ataque y Defensa. Claudio Salazar Estudiante Ing. Civil Informática UTFSM Pinguinux Team Web : Ataque y Defensa. Claudio Salazar Estudiante Ing. Civil Informática UTFSM Pinguinux Team Temario 1. Introducción 2. Cross Site Scripting (XSS) 3. Inyección SQL 4. Nuestro código en el servidor 5.

Más detalles

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

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US Sobre mi Formación Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US Experiencia Aficiones 4+ años como desarrollador web, más de 2 en Drupal

Más detalles

Capítulo 2.- Vulnerabilidades en aplicaciones web.

Capítulo 2.- Vulnerabilidades en aplicaciones web. Capítulo 2.- Vulnerabilidades en aplicaciones web. En este capítulo se explican algunas vulnerabilidades en aplicaciones web que pueden ser explotadas por software o por personas malintencionadas y como

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

Suplemento informativo: aclaración del requisito 6.6 sobre revisiones de códigos y firewalls de aplicaciones

Suplemento informativo: aclaración del requisito 6.6 sobre revisiones de códigos y firewalls de aplicaciones Norma: Normas de Seguridad de Datos (DSS) Requisito: 6.6 Fecha: febrero de 2008 Suplemento informativo: aclaración del requisito 6.6 sobre revisiones de códigos y firewalls de aplicaciones Fecha de publicación:

Más detalles

TEMA 1.- Conceptos Generales y Entorno de Trabajo Objetivo

TEMA 1.- Conceptos Generales y Entorno de Trabajo Objetivo CURSO DE PHP El objetivo final que persigue este curso es dotar al alumno de los conocimientos necesarios para elaborar páginas web de carácter dinámico, utilizando, para ello, el lenguaje de programación

Más detalles

Técnicas del Penetration Testing

Técnicas del Penetration Testing Técnicas del Penetration Testing Victor H. Montero vmontero@cybsec cybsec.comcom Septiembre de 2005 Buenos Aires - ARGENTINA Agenda - Qué es un Penetration Test? - El rol del PenTest en la Seguridad Informática.

Más detalles

Seguridad en Aplicaciones Web

Seguridad en Aplicaciones Web Seguridad en Aplicaciones Web Leandro Meiners lmeiners@cybsec cybsec.comcom Septiembre de 2005 Buenos Aires - ARGENTINA Temario Temario Introducción al Protocolo HTTP: Arquitectura, carácterísticas, autenticación,

Más detalles

Cómo abrir la base de datos de Aspel-SAE 5.0?

Cómo abrir la base de datos de Aspel-SAE 5.0? Cómo abrir la base de datos de Aspel-SAE 5.0? 1 Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde la

Más detalles

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace 5. Internet 5.1. Qué es Internet? Internet es una red mundial de equipos que se comunican usando un lenguaje común. Es similar al sistema telefónico internacional: nadie posee ni controla todo el sistema,

Más detalles

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

Lección 7: INTRODUCCIÓN A LAS TÉCNICAS DE INYECCIÓN SQL 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

Más detalles

Seminario de SEGURIDAD WEB. Pedro Villena Fernández www.consultoriainnova.com

Seminario de SEGURIDAD WEB. Pedro Villena Fernández www.consultoriainnova.com Seminario de SEGURIDAD WEB Pedro Villena Fernández www.consultoriainnova.com Algunas cosas antes de empezar... Este seminario NO tiene la intención de piratear otras webs. Los ataques que aprenderemos

Más detalles

Seguridad en el ciclo de vida del desarrollo de software

Seguridad en el ciclo de vida del desarrollo de software Seguridad en el ciclo de vida del desarrollo de software Lic. Pablo Milano 12 de Septiembre de 2007 Buenos Aires - Argentina Introducción Introducción n a la seguridad en el SDLC Actualmente

Más detalles

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

Christian Martorella - Vicente Díaz Edge-security Fist Conference April 2007 Christian Martorella - Vicente Díaz Edge-security Fist Conference April 2007 Indice Introducción a la seguridad de DB Motores de Bases de Datos Ataques internos Ataques externos Conclusiones Introducción

Más detalles

Cómo abrir las bases de datos de Aspel-NOI 5.0?

Cómo abrir las bases de datos de Aspel-NOI 5.0? Cómo abrir las bases de datos de Aspel-NOI 5.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional PROGRAMAS DE ESTUDIO FORMATO 7 NOMBRE DE LA ASIGNATURA INTRODUCCIÓN A SQL CICLO, AREA O MODULO Área de Formación Profesional CLAVE DE LA ASIGNATURA IT222 OBJETIVOS GENERALES DE LA ASIGNATURA Al final del

Más detalles

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

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este

Más detalles

Seguridad en Aplicaciones Web

Seguridad en Aplicaciones Web Seguridad en Aplicaciones Web Fabian Portantier Consultor en Seguridad Informática Instructor y Escritor sobre el tema Coordinador de la Carrera de Seguridad www.portantier.com Aplicaciones Web Actuales

Más detalles

Cómo abrir las bases de datos en Aspel-COI 6.0?

Cómo abrir las bases de datos en Aspel-COI 6.0? Cómo abrir las bases de datos en Aspel-COI 6.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

Capítulo 5: PRUEBAS.

Capítulo 5: PRUEBAS. Capítulo 5: PRUEBAS. 5.1 Objetivos de las pruebas. Objetivos de las pruebas. Hoy en día el tema de la seguridad en software ya no resulta nada nuevo, en los inicios los desarrolladores de software no procuraban

Más detalles

Inseguridad de los sistemas de autenticación en aplicaciones web

Inseguridad de los sistemas de autenticación en aplicaciones web Barcelona, 18 de Marzo Inseguridad de los sistemas de autenticación Vicente Aguilera Díaz vaguilera@isecauditors.com Contenido 0. Introducción al sistema de autenticación 2. Medidas de protección 3. Referencias

Más detalles

7.1. ELEMENTOS DE SEGURIDAD. Capítulo 7

7.1. ELEMENTOS DE SEGURIDAD. Capítulo 7 Capítulo 7 La mejor forma de asegurar nuestro sistema Windows 8 cuando estamos utilizándolo es tomar parte en la seguridad del mismo de forma proactiva, interviniendo en ella con la importancia que merece.

Más detalles

Recomendaciones de Seguridad para Web sites implementados bajo Joomla!

Recomendaciones de Seguridad para Web sites implementados bajo Joomla! Recomendaciones de Seguridad para Web sites implementados bajo Joomla! Dirigido a: Secretarías de Educación que hacen uso del servicio de Web Hosting proporcionado por el Ministerio de Educación Nacional

Más detalles

Inyección SQL. Juan Manuel Espinoza Marquez juanmanuel.espinoza@gmail.com CFT San Agustín Linares -2012

Inyección SQL. Juan Manuel Espinoza Marquez juanmanuel.espinoza@gmail.com CFT San Agustín Linares -2012 Inyección SQL Juan Manuel Espinoza Marquez juanmanuel.espinoza@gmail.com CFT San Agustín Linares -2012 Introducción Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro

Más detalles

Estudio de la Seguridad en Sistemas Manejadores de Bases de Datos y sus Ambientes

Estudio de la Seguridad en Sistemas Manejadores de Bases de Datos y sus Ambientes INSTITUTO POLITÉCNICO NACIONAL Unidad Profesional Interdiciplinaria de Ingeniería y Ciencias Sociales y Administrativas Sección de Estudios de Posgrado e Investigación Estudio de la Seguridad en Sistemas

Más detalles

Hacking Ético y Frameworks Opensource

Hacking Ético y Frameworks Opensource Hacking Ético y Frameworks Opensource Mariano Nuñez Di Croce mnunez@cybsec.com Febrero 11-13, 13, 2009 IX Seminario Iberoamericano de Seguridad en las Tecnologías de la Información La Habana,, Cuba Copyright

Más detalles

ADMINISTRACIÓN DE BASE DE DATOS

ADMINISTRACIÓN DE BASE DE DATOS SQL SERVER T-SQL QUERY s es ADMINISTRADOR GRÁFICO SGBD Elementos objetos Tablas Procedimientos Triggers Funciones Usuarios Permiso Roles Contraseñas Programas DTS (Data Transfer System) Exportación e Importación

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

CURSO DE PROGRAMACIÓN PHP MySQL

CURSO DE PROGRAMACIÓN PHP MySQL CURSO DE PROGRAMACIÓN PHP MySQL MASTER EN PHP MÓDULO NIVEL BASICO PRIMER MES Aprende a crear Sitios Web Dinámicos con PHP y MySQL 1. Introducción Qué es PHP? Historia Por qué PHP? Temas de instalación

Más detalles

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

SECURITY DAY PERU. Ataques a las Aplicaciones Web. Explotación de Aplicaciones Web. Technologies SOLUTIONS FOR KEEPING YOUR BUSINESS UP SOLUTIONS FOR KEEPING YOUR BUSINESS UP Email: info@ximark.com Tel. +(507) 271 5951 Tel. +(1) 928 752 1325 Aptdo. 55-0444, Paitilla. Panama City, Panama SECURITY DAY PERU Ataques a las Aplicaciones Web

Más detalles

Ficha Técnica. effidetect

Ficha Técnica. effidetect Ficha Técnica effidetect Página 1 de 9 Introducción El Sistema Pointer es un producto de Predisoft (www.predisoft.com) cuyo propósito es la detección (en línea) del fraude que sufren las instituciones

Más detalles

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

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador Prefacio 1. Objetivos de este libro 13 2. Principales temas tratados en este libro 13 3. A quién va dirigido este libro? 14 4. Requisitos 14 Introducción a MySQL 1. Introducción a las bases de datos relacionales

Más detalles

- length(str) retorna el largo de un string en bytes. Ejemplo: "SELECT LENGTH('ITFreek')", nos devuelve 7.

- length(str) retorna el largo de un string en bytes. Ejemplo: SELECT LENGTH('ITFreek'), nos devuelve 7. 1 Inyecciones SQL V 1.0 Sentencias a necesitar: - database() devuelve el nombre de la base de datos actualmente seleccionada, o NULL si no hay ninguna seleccionada. Ejemplo: "SELECT DATABASE()" en el código

Más detalles

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas LENGUAJE SQL Que es SQL? SQL es un estándar un lenguaje estructurado para consultas SQL te permite acceder y manejar bases de datos SQL es un Estándar (ANSI American National Standards Institute) Que puede

Más detalles

FileMaker 12. Guía ODBC y JDBC

FileMaker 12. Guía ODBC y JDBC FileMaker 12 Guía ODBC y JDBC 2004-2012 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker y Bento son marcas comerciales de

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA

SERVICIO NACIONAL DE APRENDIZAJE SENA SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

Programación páginas web JavaScript y PHP

Programación páginas web JavaScript y PHP Programación páginas web JavaScript y PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la

Más detalles

3 Consultas y subconsultas

3 Consultas y subconsultas 3 Consultas y subconsultas En SQL, la sentencia SELECT permite escribir una consulta o requerimiento de acceso a datos almacenados en una base de datos relacional. Dichas consultas SQL van desde una operación

Más detalles

Bonsai: consulta web del catálogo de la biblioteca

Bonsai: consulta web del catálogo de la biblioteca Bonsai: consulta web del catálogo de la biblioteca Manual de instalación, configuración y uso Versión 5.0 Julio 2009 Fernando Posada fernandoposada@gmail.com Índice 1. Qué es Bonsai?... 3 2. Requisitos

Más detalles

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

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

Más detalles

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS Introducción 3 GESTIÓN DE MEMORIA 3 Memoria Dinámica 4 Memoria predefinida 5 Áreas especiales de memoria 5 GESTIÓN DE ALMACENAMIENTO

Más detalles

Capítulo 4.- Recomendaciones para un Servidor web y de bases de datos seguro.

Capítulo 4.- Recomendaciones para un Servidor web y de bases de datos seguro. Capítulo 4.- Recomendaciones para un Servidor web y de bases de datos seguro. Este capítulo explica las características que un servidor web y de bases de datos seguro debe tener. Esto es esencial para

Más detalles

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO INNOVATIVA CENTRO DE TRANSFERENCIA Y DESARROLLO TECNOLÓGICO ESPE CECAI Capacitación Virtual La mejor opción para su crecimiento profesional

Más detalles

Desarrollo de una Aplicación Móvil para Revisar

Desarrollo de una Aplicación Móvil para Revisar Desarrollo de una Aplicación Móvil para Revisar Horarios de Atención de Tutores de la UNAD Development of a Movil Application for Check Over Office Hours of Tutors of the Unad Correa Rodríguez Arellys

Más detalles

1) Proxy, Cortafuegos, que son? Pág.2. 2) Funcionamiento de un proxy Pág.3. 3) Proxy NAT / Enmascaramiento Pág.3

1) Proxy, Cortafuegos, que son? Pág.2. 2) Funcionamiento de un proxy Pág.3. 3) Proxy NAT / Enmascaramiento Pág.3 Indice 1) Proxy, Cortafuegos, que son? Pág.2 2) Funcionamiento de un proxy Pág.3 3) Proxy NAT / Enmascaramiento Pág.3 4) Servidores proxy / Servidores de Sockets Pág.4 5) Proxy de web / Proxy cache de

Más detalles

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez Seguridad en Sitios Web de Alto Tráfico Ing. Enrique Hurtarte Juárez Guatemala, 24 de Julio de 2014 XumaK Quienes somos XumaK es una empresa que fue fundada en 2003 por Marcos Andres como una de las primeras

Más detalles

Ataques a Aplicaciones de Bases de Datos

Ataques a Aplicaciones de Bases de Datos Ataques a Aplicaciones de Bases de Datos Esteban Martínez Fayó Argeniss (www.argeniss.com) ekoparty security conference Noviembre 2007 Buenos Aires, Argentina Agenda Introducción a la seguridad en Bases

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

FileMaker 11. Guía ODBC y JDBC

FileMaker 11. Guía ODBC y JDBC FileMaker 11 Guía ODBC y JDBC 2004-2010 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker es una marca comercial de FileMaker,

Más detalles

1.264 Tema 8. SQL (cont.) ODBC

1.264 Tema 8. SQL (cont.) ODBC 1.264 Tema 8 SQL (cont.) ODBC Subconsultas Las subconsultas de SQL nos permiten utilizar los resultados de una consulta como parte de otra. Subconsultas: A menudo, constituyen un modo natural de escribir

Más detalles

COMO ABORDAR LOS RECURSOS EN EL ENTORNO DE APRENDIZAJE PRACTICO

COMO ABORDAR LOS RECURSOS EN EL ENTORNO DE APRENDIZAJE PRACTICO COMO ABORDAR LOS RECURSOS EN EL ENTORNO DE APRENDIZAJE PRACTICO Debe ubicar el entorno de aprendizaje práctico y en el recurso lección desplegable dar clic (tal como se muestra en la figura). Este recurso

Más detalles

SFX-SQLi SELECT FOR XML SQL INJECTION

SFX-SQLi SELECT FOR XML SQL INJECTION v1.0 SFX-SQLi SELECT FOR XML SQL INJECTION Extracción rápida de información utilizando inyección SQL con instrucciones XML Daniel Kachakil (dani@kachakil.com) 5 de febrero de 2009 Contenido Resumen...

Más detalles

Ataques XSS en Aplicaciones Web

Ataques XSS en Aplicaciones Web Ataques XSS en Aplicaciones Web Education Project Antonio Rodríguez Romero Consultor de Seguridad Grupo isoluciones antonio.rodriguez@isoluciones.es Copyright 2007 The Foundation Permission is granted

Más detalles

Haga clic para cambiar el estilo de título. Curso de Seguridad de la Información

Haga clic para cambiar el estilo de título. Curso de Seguridad de la Información Haga clic para cambiar el estilo de título Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel Curso de Seguridad de la Información Agenda Conceptos

Más detalles

Haga clic para cambiar el estilo de título. Curso de Seguridad de la Información. Seguridad de Bases de Datos. Seguridad de Bases de Datos

Haga clic para cambiar el estilo de título. Curso de Seguridad de la Información. Seguridad de Bases de Datos. Seguridad de Bases de Datos Haga clic para cambiar el estilo de título Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel Curso de Seguridad de la Información Agenda Conceptos

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA

SERVICIO NACIONAL DE APRENDIZAJE SENA SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

Securiza tu red con Snort y sus amigos

Securiza tu red con Snort y sus amigos www.securityartwork.es www.s2grupo.es Securiza tu red con Snort y sus amigos José Luis Chica Uribe Técnico de seguridad IT jchica@s2grupo.es Índice Seguridad: conceptos Tipos de ataques Cómo defenderse?

Más detalles

Comparativo de la versión 4.x a la versión 5.9.8.x Generalidades en funciones, herramientas y vistas de información en la consola de administración

Comparativo de la versión 4.x a la versión 5.9.8.x Generalidades en funciones, herramientas y vistas de información en la consola de administración Comparativo de la versión 4.x a la versión 5.9.8.x Generalidades en funciones, herramientas y vistas de información en la consola de administración No está en la versión Está incluido en la versión Consulta

Más detalles

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

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 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 Jorge Iván Meza Martínez INTRODUCCIÓN Esta aplicación permite

Más detalles

La inmensa mayoría de las páginas son vulnerables, a unos u otros fallos.

La inmensa mayoría de las páginas son vulnerables, a unos u otros fallos. Introducción a la seguridad Web: La inmensa mayoría de las páginas son vulnerables, a unos u otros fallos. El gran problema no está en que esas páginas sean vulnerables y con ello podamos pasar un rato

Más detalles

ESPECIALISTA EN BASE DE DATOS

ESPECIALISTA EN BASE DE DATOS ESPECIALISTA EN BASE DE DATOS EXPERTO ANALISIS Y DISEÑO DE BASE DE DATOS EN MANEJAR BASES DE ACCESS COMPLETO DATOS MYSQL Requisito: Manejo Windows POSTGRESQL DURACION: 3 MESES DE L-V SQL SERVER Cliente-Administración

Más detalles

Uso de las herramientas de consulta de Transact-SQL

Uso de las herramientas de consulta de Transact-SQL Uso de las herramientas de consulta de Transact-SQL Contenido Introducción 1 Analizador de consultas SQL 2 Uso de la herramienta Examinador de objetos en el Analizador de consultas SQL 3 Uso de plantillas

Más detalles

Auditorías de Seguridad: revisión como método de prevención. Vicente Aguilera Díaz Internet Security Auditors, S.L.

Auditorías de Seguridad: revisión como método de prevención. Vicente Aguilera Díaz Internet Security Auditors, S.L. Auditorías de Seguridad: revisión como método de prevención Vicente Aguilera Díaz Internet Security Auditors, S.L. CONTENIDO 1. Protección de la información 2. Auditorías de seguridad 3. Implantación de

Más detalles

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida 9.1 Operaciones CAPITULO 9 Diseño de una Base de Datos Relacional Distribuida Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos homogéneos o heterogéneos. Estos orígenes de

Más detalles

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS Marco A. Lozano Merino Mayo 2012 Índice 1.Seguridad a nivel de usuario 1.Amenazas y protección 2.La realidad de la seguridad: hackers 3.Seguridad en redes

Más detalles

WHITEPAPER AUMENTANDO LA SEGURIDAD DE WORDPRESS

WHITEPAPER AUMENTANDO LA SEGURIDAD DE WORDPRESS WHITEPAPER AUMENTANDO LA SEGURIDAD DE WORDPRESS Índice Overview 4 Introducción 5 Qué es un CMS? Quién usa WordPress? Vulnerabilidades en WordPress Medidas de seguridad básicas 6-7 Mantener WordPress y

Más detalles

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP.

PROGRAMACIÓN EN PHP. 1. Identificar las características y modalidad de programación bajo PHP. Duración: 60 horas FUNDAMENTACIÓN DEL CURSO PROGRAMACIÓN EN PHP El Lenguaje PHP o Hypertext PreProcessor, al igual que C y Perl maneja programación estructurada, lo que le permite a los programadores con

Más detalles

CARACTERISTICAS BASICAS DE LOS SMBD ORACLE

CARACTERISTICAS BASICAS DE LOS SMBD ORACLE Qué es una base de datos? Una base de datos es una herramienta para recopilar y organizar información. En las bases de datos, se puede almacenar información sobre personas, productos, pedidos, o cualquier

Más detalles

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

Técnicas y Procedimientos para la realización de Test de Intrusión Extrelan 2008 Cáceres. Marzo de 2008 Técnicas y Procedimientos para la realización de Test de Intrusión SG6 Soluciones Globales en Seguridad de la Información http://www.sg6.es INDICE DE CONTENIDOS Primera

Más detalles

abacformacio@abacformacio.com

abacformacio@abacformacio.com Programación de páginas web con PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología

Más detalles

Guía del Curso. IFCD0112 Programación con Lenguajes Orientados a Objetos y Bases de Datos. Relacionales

Guía del Curso. IFCD0112 Programación con Lenguajes Orientados a Objetos y Bases de Datos. Relacionales Guía del Curso IFCD0112 Programación con Lenguajes Orientados a Objetos y Bases de Datos Relacionales Modalidad de realización del curso: Número de Horas: Titulación: Distancia 710 Horas Diploma acreditativo

Más detalles

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados

Más detalles

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

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 H E R R A M I E N T A S A V A N Z A DA S D E DE S A R R O L L O D E S O F T W A R E 2 0 0 7-2 0 0 8 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 X S S Y S Q L I N J E C T I O N G R U P O 2 4 S A

Más detalles

Bypass WAFs KUNAK CONSULTING. Automatizando SQLi con Python. Omar Palomino. omarc320@gmail.com. opalomino@kunak.com.pe. http://www.el-palomo.

Bypass WAFs KUNAK CONSULTING. Automatizando SQLi con Python. Omar Palomino. omarc320@gmail.com. opalomino@kunak.com.pe. http://www.el-palomo. Bypass WAFs KUNAK CONSULTING Automatizando SQLi con Python Noviembre, 2013 Omar Palomino omarc320@gmail.com opalomino@kunak.com.pe ÍNDICE 1.Inyecciones SQL 2.Inyecciones manuales vs herramientas 3.Nuevos

Más detalles

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

Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen Web: Ataque y defensa Introducción. Cross Site Scripting (XSS). SQL Injection. Programador? quien yo?. Ataques NG. Prevención.

Más detalles

Tema 1. Conceptos básicos

Tema 1. Conceptos básicos Conceptos básicos Sistema de Gestión de Bases de Datos, SGBD (DBMS, Database Management System): software diseñado específicamente para el mantenimiento y la explotación de grandes conjuntos de datos 1

Más detalles

MAESTRO DE PHP PHP NIVEL 1

MAESTRO DE PHP PHP NIVEL 1 MAESTRO DE PHP MAESTRO DE PHP es el curso más completo diseñado para que aprendas desde 0 hasta poder desarrollar aplicaciones robustas utilizando Frameworks. Incluye los Cursos PHP Nivel 1 y PHP Avanzado

Más detalles

LABORATORIO DE FTP. PRESENTADO POR: Diana Maritza Aragón Marta Moreno Luis Miguel Pérez. PRESENTADO A: Marcelo Utard Javier Bozzuto

LABORATORIO DE FTP. PRESENTADO POR: Diana Maritza Aragón Marta Moreno Luis Miguel Pérez. PRESENTADO A: Marcelo Utard Javier Bozzuto LABORATORIO DE FTP PRESENTADO POR: Diana Maritza Aragón Marta Moreno Luis Miguel Pérez PRESENTADO A: Marcelo Utard Javier Bozzuto ESCUELA DE GRADUADOS DE ELECTRÓNICA Y TELECOMUNICACIONES LABORATORIO DE

Más detalles

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN UNICIENCIA 24 pp. 83-89 2010 IMPLEMENTACIÓN DE UN SERVIDOR FTP UTILIZANDO EL MODELO CLIENTE/SERVIDOR MEDIANTE EL USO DE SOCKETS EN LENGUAJE C UNIX CON EL FIN DE MEJORAR LOS TIEMPOS DE RESPUESTA EN LA RED

Más detalles

Con la interacción de tus empleados mejorará la productividad de tu negocio

Con la interacción de tus empleados mejorará la productividad de tu negocio 1. Introducción Con la interacción de tus empleados mejorará la productividad de tu negocio Los empleados de cualquier compañía precisan numerosos accesos en su trabajo diario, además de interaccionar

Más detalles

Bases de datos. 1. Introducción

Bases de datos. 1. Introducción Bases de datos 1. Introducción Habitualmente, los programas trabajan con información que está en un fichero. Por ejemplo, nuestro simulador de tráfico aéreo trabaja con una lista de planes de vuelo que

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

Conexión a Bases de Datos en PHP

Conexión a Bases de Datos en PHP 1. 2. 3. 4. 5. 6. Configuración y acceso servidor MySQL 1.1. Conexión servidor MySQL desde xampp 1.2. Configuración password usuario root Configurar la Base de Datos 2.1. Crear la Base de datos 2.2. Crear

Más detalles

Penetration Test Metodologías & Usos

Penetration Test Metodologías & Usos Penetration Test Metodologías & Usos Lic. Luis Ramírez lramirez@cybsec.com 18 de Noviembre de 2009 Asunción, n, Paraguay Agenda Introducción Seguridad Informática en los Sistemas Objetivos, Tipos y Alcances

Más detalles

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

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13 ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13 1.1 SISTEMAS LÓGICOS DE ALMACENAMIENTO DE LA INFORMACIÓN...13 1.2 ALMACENAMIENTO EN FICHEROS...13 1.2.1 Registros físicos y registros

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL UNIVERSIDAD NACIONAL DE INGENIERÍA Convirtiendo Excel en una herramienta de BI CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES

Más detalles

Software generador de documentos a través de la Web

Software generador de documentos a través de la Web Julia Patricia Melo Morín 1 Software generador de documentos a través de la Web 1 Contacto: patricia.melo@itspanuco.edu.mx Resumen Uno de los mayores problemas a los que se enfrentan las grandes corporaciones

Más detalles

1. Descripción de Heartbleed. 3. Como Logtrust puede ayudar a protegerte contra Heartbleed. 4. Detectar el error mediante el Logtrust.

1. Descripción de Heartbleed. 3. Como Logtrust puede ayudar a protegerte contra Heartbleed. 4. Detectar el error mediante el Logtrust. ÍNDICE 1. Descripción de Heartbleed. 2. Impacto de Heartbleed. 3. Como Logtrust puede ayudar a protegerte contra Heartbleed. 4. Detectar el error mediante el Logtrust. 5. Con Log de debug de apache. 6.

Más detalles

Software de seguridad en base de datos

Software de seguridad en base de datos UNIVERSIDAD CATOLICA DE COSTA RICA BACHILLERTO EN INFORMATICA Materia: Base de datos 2 Software de seguridad en base de datos Profesor: Daniel Obando Participantes: Cairo Castillo L Esteban Acuña Jeffrey

Más detalles

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

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

PROGRAMA DE ESTUDIOS BASE DE DATOS

PROGRAMA DE ESTUDIOS BASE DE DATOS PROGRAMA DE ESTUDIOS BASE DE DATOS IDENTIFICACIÓN DEL CURSO Ubicación HCA HTI Total de horas Valor en créditos 5 semestre 1 3 4 4 Tipo de curso Obligatorio Matemáticas V Física III Inglés III Asignaturas

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

ISEC Lab #4. Firewall de Aplicación con Mod_Security. Christian Martorella cmartorella@isecauditors.com

ISEC Lab #4. Firewall de Aplicación con Mod_Security. Christian Martorella cmartorella@isecauditors.com ISEC Lab #4 Firewall de Aplicación con Mod_Security Christian Martorella cmartorella@isecauditors.com Índice 1.Introducción...3 2. Qué es y para que sirve?...4 3.Ventajas... 5 4.Características y Funcionalidades...6

Más detalles

Tecnologías De La Información Y Comunicación I. Firewall Y Proxy. Integrantes: Héctor Duran. Katherine Zumelzu

Tecnologías De La Información Y Comunicación I. Firewall Y Proxy. Integrantes: Héctor Duran. Katherine Zumelzu Firewall Y Proxy Integrantes: Héctor Duran Katherine Zumelzu Fecha: 15/04/2015 Índice Qué es un firewall?... 3 Tipos de Firewall... 4 -Nivel de aplicación de Pasarela:... 4 -Circuito a nivel de Pasarela:...

Más detalles