PARTE 1. XSS indirecto

Documentos relacionados
ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO

SEGURIDAD Y ALTA DISPONIBILIDAD

Computación Web (Curso 2013/2014)

Diseño y desarrollo Web con HTML 5, CSS y Dreamweaver CS4 - URJC

Manual del Usuario de Microsoft Access Consultas - Página 1. Tema IV: Consultas. IV.1. Creación de Consultas

Facturación WEB en Aspel-SAE 6.0

Duración en horas: 20 OBJETIVOS DEL CURSO

Aula Virtual. Manual del estudiante

1. Objetivo Proporcionar la información para el correcto uso de la Aplicación Informática de Empresas Aeronáuticas.

REPRESENTANTE DE EMPRESA GUÍA RÁPIDA DEL SISTEMA

Programación de páginas Web en PHP

Manual para la configuración del correo electrónico en Outlook 2003


Tabla de contenido. P á g i n a 2

una nueva página (recordar que en este curso no se ve como programar en el servidor) Todo los formularios que implemento y los que usted implementará

Guía de Navegación Campus Lares BIENVENIDOS AL CAMPUS VIRTUAL LARES

INSTRUCTIVO PARA ACCESO AL RECIBO DIGITAL

Cómo publicar videos en YouTube y Google Video

MANUAL DE POSTULACIÓN EN LÍNEA PROGRAMA DE MOVILIDAD ESTUDIANTIL ESTUDIOS PARCIALES EN EL EXTRANJERO

Manual de la solicitud de alta de cuenta de correo.

Sistema Único de Información Ambiental SUIA. Manual de Usuario - Soporte. Manual de usuario Mesa de ayuda Página 1 de 15

Índice Introducción Acceso al portal Spontania... 4 Descarga cliente de Mensajería Instantánea... 8 Acceso a Encuestas...

Manual para la configuración del correo electrónico en Outlook 2010

Manual para Alumnos del Campus Virtual

ESCUELA NACIONAL AUXILIARES DE ENFERMERÍA Manizales TECNOLOGÍA E INFORMÁTICA

Puesta en marcha de Aspel-COI 7.0

Manual de Familia. (R) Impreso en Sinaloa, México.

Cómo registrarse como nuevo usuario del sistema online de inscripción a exámenes Cambridge ESOL?

Javier Garson Desarrollador web Abril CSRF Falsificando peticiones

Instalar componentes, Insertar videos en PowerPoint, subir videos a Youtube.com Ing.Esp. Gustavo Sánchez Rodríguez

Programación páginas web con PHP

SUBMÓDULO DE DISTRIBUCIÓN DE PLANTA DE PERSONAL

Importante Recuerda que el espacio en disco asignado a las carpetas IMAP está limitado. Sólo podrás subir mensajes si queda espacio suficiente.

AUTENTICACIÓN EN EL SISTEMA...

Proyecto SENCE-OTIC. Manual Usuario. Manual Usuario Documento Práctico Página 1 de 81

Manual de usuario aplicativo Offline pruebas Supérate con el saber 2.0

SILABO. Se requiere el manejo de Windows a nivel usuario y el trabajo con listas de datos. Un nivel de Excel básico sería deseable pero no obligatorio

1. Objetivos. Competencias Profesionales, Personales y Sociales

El curso esta orientado para toda persona que desee aprender todos las funciones de esta Base de Datos.

hipervinculos La página que rescata el valor pasado como parámetro es la siguiente: <html> <head> <title>problema</title> </head> <body> <?

Ayuda para la instalación y configuración del Navegador para Firma Digital

MANUAL DE USUARIO MANUAL DE USUARIO

2.2. CREAR Y MODIFICAR CAMPOS.

Manual de Usuarios Portal de Recepción y Validación de CFDI s

Vulnerabilidades en Aplicaciones Web Webinar Gratuito

DISEÑO CURRICULAR ELECTIVA II. DESARROLLO DE APLICACIONES WEB

Grupo de Ingeniería del Software. Conceptos básicos de formularios HTML

Departamento de Anatomía Humana Facultad de Medicina U.A.N.L. AnatoBoard MANUAL DE USUARIO

Visualización de solicitud de pedido

Directrices técnicas

LENGUAJES DEL LADO DEL CLIENTE Y DEL SERVIDOR

Coordinación de Estudios Mediados por las TICL

Todas las páginas del módulo disponen de una cabecera:

7.1. Consultas directas

Bloque I: Seguridad web

Módulo 2: Cómo funcionan las computadoras

PUBLICACIÓN DE CONTENIDOS EN EL PORTAL WEB DE LA CONSEJERÍA DE IGUALDAD, SALUD Y POLÍTICAS SOCIALES

Manual de Usuario Patente de operacio n turística

Gestión de la Información e Innovación Tecnológica GIIT Guía para inicio y configuración de correo UP (estudiantes)

Manual de usuario Módulo web de captura de datos de primas ganaderas. Fecha: 02/08/2005 Página: Sacrificios Nacimiento...

MANUAL ACTIVACIÓN COMO USUARIO DE APLICACIONES WEB CORPORATIVAS

HTML5, CSS3 + JQuery

Manual para usuarios externos Versión de mayo de 2015

PROGRAMACIÓN SEGURA EN PHP Héctor A. Mantellini VaSlibre CODIGO LIMPIO CODIGO SEGURO.

Índice de Contenidos

MANUAL DE EJECUCION DE LA HERRAMIENTA DE ESPECIFICACION DE INVENTARIO EQUIPOS DENTRO DE LOS ESTABLECIMIENTOS EDUCATIVOS

Solicitud de Ayudas Primeros pasos con firma electro nica

Manual de usuario del programa para la presentación de solicitudes de ayudas

MANUAL AUTOMATRICULA UNIVERSIDAD CAMILO JOSE CELA MANUAL AUTOMATRÍCULA UNIVERSIDAD CAMILO JOSÉ CELA

PORTAL SUMITOMO MANUAL PROVEEDORES (PORTAL WEB)

SISTEMA DE ASIGNACION DE CODIGO PERSONAL PARA ESTUDIANTES DE NIVEL MEDIO. Solución de Dudas Frecuentes (FAQ)

Aplicación Firma Electrónica de Archivos 3.0 MANUAL DE USUARIO. Versión Firma Electrónica de Archivos Versión 3.0

Visualización de Documentos Firmados en Adobe Acrobat.

Este documento explica los nuevos desarrollos para la versión 2.0 de nubedelectura.

LABORATORIO Nº 5 FORMULARIOS EN EXCEL

MANUAL LOTTERY V2. Figura 1: Web ubicación archivo ejecutable

Guía de uso para la aplicación móvil

GUÍA PARA REALIZAR EL REGISTRO EN LÍNEA PARA UNA CONVOCATORIA EXPEDIDA POR SERVICIO CIVIL DE CARRERA DEL ESTADO DE GUANAJUATO:

Configurar Office 365 en un teléfono Android

Sistema de Solicitudes de Constancias. Manual del Solicitante. Oficina de Recursos Humanos Universidad de Costa Rica

Curso de Excel Completo Básico Intermedio - Avanzado

Guía rápida de instalación de i-card Loyalty 5.0. Contenido

CÓMO CREAR UN ENLACE DE SUSCRIPCIÓN EN UN BLOG DE WORDPRESS (O CUALQUIER OTRO BLOG)

DREAMWEAVER CS 5 DURACIÓN Y OBJETIVOS DEL CURSO. Duración en horas: 40

El usuario selecciona el botón crear proyecto (Uniprograma o Interprograma).

Manual de uso para la consulta de resultados desde la web

Firma digital de actas académicas

Sesión No. 12. Contextualización INFORMÁTICA 1. Nombre: Editor de Publicaciones (Microsoft Publisher)

Notificación de acciones correctivas de seguridad en campo europeas (NIS)

COTIZADOR WEB EQUINOCCIAL

Fiddler: Manual de usuario

Visualización de la lista de fuentes disponibles

Arquitecturas Distribuidas. TEMA 3. Tecnologías de la web dinámica

Cómo accedo al campus y a mi curso? Porqué un nuevo campus? CAMPUS VIRTUAL TUTORIAL CAMPUS. usuario alumno

Cómo instalar la App Móvil de BCD Travel

Instructivo Técnico para Firma Electrónica

Seguridad en la entrega aplicaciones

Manual de Trados Multiterm

SESIÓN 10 PRÁCTICA DE POWER POINT.

UPARSISTEM DISEÑO WEB I

Transcripción:

PRÁCTICA No. 3: XSS - Secuencias de Comandos en Sitios Cruzados A. Objetivo de aprendizaje El alumno comprenderá la importancia de corregir los defectos de programación mediante la práctica de la técnica de XSS Secuencias de Comandos en Sitios Cruzados B. Conceptos teóricos XSS, del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar código JavaScript o en otro lenguaje script similar, evitando medidas de control. XSS es un vector de ataque que puede ser utilizado para robar información delicada, secuestrar sesiones de usuario, y comprometer el navegador, subyugando la integridad del sistema. Esta situación es usualmente causada al no validar correctamente los datos de entrada que son usados en cierta aplicación, o no sanear la salida adecuadamente para su presentación como página web. Esta vulnerabilidad puede estar presente de las siguientes formas: Indirecta (también llamada Reflejada): este tipo de XSS consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas y sucede cuando hay un mensaje o una ruta en la URL del navegador, en una cookie, o cualquier otra cabecera HTTP. Directa (también llamada Persistente): este tipo de XSS comúnmente filtrado, y consiste en insertar código HTML peligroso en sitios que lo permitan. PARTE 1. XSS indirecto 1. El primer paso será encontrar un sitio vulnerable ante este tipo de técnicas (El 80% de los sitios web son vulnerables en alguna u otra medida). Nos dirigimos al buscador Google y colocamos este tipo de búsquedas: inurl:"search.php?q=" inurl: búsqueda.php? Aparecerán diversos sitios con dos controles web: una caja de texto y un botón, con los cuales se realiza una búsqueda de información dentro de la base de datos de la página.

Para efectos prácticos, en el resto de este ejercicio haremos uso de la siguiente URL: http://www.scielo.org/php/index.php?lang=es La cual contiene una caja de texto y un botón de búsqueda como se puede observar en la siguiente imagen: 2) Para cotejar que la página web es vulnerable, será necesario introducir un término de búsqueda y cotejar que la página de resultados muestre la cadena sin modificaciones. En caso de que la cadena no se muestre de la misma forma en que la ingresamos será necesario probar con otra página. 3) Una vez que se ha cotejado que la página web es vulnerable pruebe ingresando un script de tipo javascript para verificar que el sitio es capaz de ejecutar instrucciones de este tipo 4) Para tomar control del sitio y que pueda ejecutar código con una URL directamente, deberá leer el código fuente de la página origen (página donde se realiza la búsqueda) y pasar los valores por GET a la página destino (página donde se muestra el resultado) de la siguiente forma:

En este ejemplo, el formulario de búsqueda tiene dos variables que pasan a la página destino: expression que corresponde a la caja de texto y pequisar que corresponde al botón de enviar. Probaremos estas variables directamente en la página destino como parámetros GET de la siguiente forma: Dos de los ataques más comunes que se llevan a cabo con esta técnica, consisten en la captura de sesiones y la inserción de formularios de captura apócrifos mediante la creación del script en una URL y la compartición de la misma. a) CASO 1: Captura de sesiones (Mostrar en pantalla) Para este caso, la expresión a buscar es sustituida por un script que da lectura al comando JavaScript document.cookie mediante el cual un usuario es capaz de dar lectura al archivo de variables tipo COOKIE almacenadas en su equipo de cómputo. Sin embargo, un atacante podría leer este archivo de forma remota e incluso guardarlo dentro de su servidor. Un ejemplo para acceder a las variables tipo COOKIE es el siguiente: searchbytitle.php?expression=<h1>hi,i get your cookies</h1> <script> document.write(document.cookie); </script>&pesquisar=; Obteniendo el siguiente resultado en pantalla:

Con lo cual se obtienen datos como la ubicación del usuario, su sesión, etc. b) CASO 2: Inserción de formularios apócrifos En este segundo caso, el objetivo es crear una URL maliciosa que al ser distribuida, pueda pasar por una real dado que el inicio de la misma proviene desde un sitio legítimo, pero que sin embargo contiene un formulario que nos permitiría obtener datos sensibles del usuario final. Un ejemplo simple para crear un formulario puede ser el siguiente: searchbytitle.php?expression=<h2>enviar resultados a correo</h2> <div id="c">pagina</div> <script>document.getelementbyid("c").innerhtml="login form <br><br> User:\u0026nbsp; <input type=text size=20> <br><br> Password: \u0026nbsp; <input type=text size=20> <br><br> <input type=submit value=enviar>"; </script>&pesquisar=; Obteniendo el siguiente resultado en pantalla:

Por último, para el caso en que realmente quisiera distribuir una URL maliciosa, está podría ser codificada en código Hexadecimal para evitar ser reconocida por el usuario final, esto se logra con la ayuda de herramientas en línea disponibles tal como http://www.swingnote.com/tools/texttohex.php En este caso, la URL final del caso 1 quedaría de la siguiente forma: http://www.scielo.org/applications/scielo-org/php/searchbytitle.php?expression= %3c%68%31%3e%48%69%2c%49%20%67%65%74%20%79%6f%75%72%20%63%6f%6f%6b%69%65%73% 3c%2f%68%31%3e%20%3c%73%63%72%69%70%74%3e%20%64%6f%63%75%6d%65%6e%74%2e%77%7 2%69%74%65%28%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%29%3b%20%3c%2f%73% 63%72%69%70%74%3e&pesquisar=; EJERCICIO 1: Ejecute los pasos anteriores y encuentre al menos otro sitio vulnerable en la red. Registre sus resultados PARTE 2. XSS Directo 1. Este tipo de ataques es mucho más peligroso que el anterior y sus efectos pueden llegar a ser fatales para el sitio que logra ser vulnerado mediante esta técnica. En el año 2012 fue reportada una vulnerabilidad XSS dentro de los sistemas que corrían bajo el CMS WORDPRESS, a continuación los datos del ataque: # Type: XSS Vulnerability # Exploit: http://site.com/{path}/wp-content/plugins/wp-password/login.php?err={your Text} # Google Dork: inurl: /wp-content/plugins/wp-password/login.php Si realiza una búsqueda del Google Dork en el buscador de Internet, podrá cotejar que casi el 100% de los sitios expuestos se encuentran vulnerados. Para realizar una prueba de cómo llevar a cabo este tipo de ataques se realizará en un entorno controlado para lo cual se instalará una aplicación PHP vulnerable (DVWA) de origen sobre la cual se llevará a cabo el ejercicio. Para poder realizar la práctica deberá configurar la aplicación con el nivel de seguridad más bajo. Este nivel se puede configurar en el menú DVWA Security

Al ingresar al menú XSS Stored se muestra una aplicación que pretende hacer las veces de un formulario para firmar un libro de visitas de un sitio Web, la cual es una situación que comúnmente puede ser vulnerable a este tipo de ataques. A diferencia del XSS de tipo indirecto, en el XSS directo el ataque pretende que el código malicioso permanezca en la página Web atacada, logrando que todos los visitantes puedan visualizar dicho código. Ingrese los siguientes comentarios dentro de las casillas NOMBRE y COMENTARIO. Nombre: Usuario1 Comentario: <script>alert("hola");</script> Nombre: Usuario2 Comentario: <img src= http://i.ytimg.com/vi/vqzy88tfan4/0.jpg> Nombre: Usuario3 Comentario: <iframe src=" http://mexico.cnn.com/ "></iframe> Nombre: Usuario4 Comentario: <script>alert(document.cookie)</script> EJERCICIO 2: Analice cuidadosamente cada uno de las entradas al libro de vivitas y explique el código malicioso y la consecuencia que cada uno podría tener sobre un visitante.