sábado, enero 26, 2013

Examen Máster Seguridad UEM 2012-2013

Aquí tenéis el examen del curso 2012-2013 del módulo de Seguridad en Aplicaciones Web del Máster de Seguridad de la UEM. El tiempo de realización es de 1 hora y media. No vale copiar, no vale hablar con el compañero y si estás en tu casa haciéndolo no vale usar Internet para buscar las respuestas. Las soluciones las pongo mañana.

1.- Tienes una empresa con una aplicación web de presencia en Internet que carga los contenidos que se publican dinámicamente desde una base de datos. Desde esa web, hay un acceso especial para clientes que pueden acceder a una aplicación de compras. Además, la empresa tiene una intranet para la gestión del personal. ¿Qué medidas de seguridad consideras que se deberían tomar en cuanto a la arquitectura de servidores y servicios? Cita reglas generales y medias concretas que creas convenientes.

Respuesta: Fortificación de un servidor web Apache. Las leyes de la fortificación

2.- Describe en qué consiste un ataque XSS No-persistente, un entorno en el que se pueda encontrar esta vulnerabilidad y cómo puede ser utilizado para distribuir malware a través de Google.

Respuesta: Buscadores como arma de destrucción masiva: Ataques XSS Google-Persistentes 

3.- Describe como se puede hacer un proceso de hijacking de sesión a un usuario de una red social en la que las cookies no vayan por HTTP-s si la web no tiene una vulnerabilidad de código (ni SQLi, ni XSS).

Respuesta: Firesheep o Wirehsark

4.- Describe algún método para robar una cookie marcada como HTTP-Only con un ataque de XSS.

Respuesta: Usando el método TRACE, usando errores 400 en Apache o usando Applets Java

5.- Una aplicación web de una empresa carga un Applet Java en la página de login para autenticar a los usuarios. Tras probar varios usuarios erróneos, se puede comprobar que la aplicación no hace Post-Back. ¿Qué fallo de seguridad podría tener esta aplicación y cómo debería investigarse?

Respuesta: Validación local. Se usarían decompiladores de Applets 

6.- Una aplicación web en PHP con MySQL es vulnerable a SQL Injection. Se quiere extraer la versión de Mysql realizando un ataque de Blind SQL injection. Describe el proceso que habría que realizar.

Respuesta: Blind SQL Injection en MySQL y Optimización de Blind SQL Injection en MySQL

7.- Describe en qué consisten los ataques de Time-Based Blind SQL Injection y cómo pueden realizarse sin hacer uso de funciones específicas de retardo de tiempo como delay o sleep.

Respuesta: Técnicas avanzadas de ataques Blind SQL Injection

8.- Una empresa de venta online, tras un balance de fin de mes, comprueba que los cobros realizados por las ventas no corresponden con el precio de venta de los artículos vendidos. ¿Qué se debería comprobar en la aplicación web si se sabe que nadie ha manipulado los precios en la base de datos?

Respuesta: Coja su cambio, sea justo.

9.- Dado el siguiente código PHP del lado del servidor ubicado en la ruta web siguiente:

http://www.miweb.test/home/public_html/descargafichero.php
<?php
session_start();
$sDocumento = $_GET['documento'];
header("Content-type: application/force-download");
header("Content-Length: ".filesize($sDocumento));
header("Content-Disposition: attachment;
filename=".basename($sDocumento));
header("Content-Transfer-Encoding: binary");
if (!@readfile($sDocumento)) echo "Error";
?>
Responde a las siguientes cuestiones:

a) Determina qué tipo de vulnerabilidad está presente en él y describe sus riesgos.
b) Escribe una URL de ataque que permita explotarla para poder acceder al código fuente de la página descargafichero.php
c) Escribe la URL de ataque para descargar un fichero con todos los usuarios de un sistema *NIX*.

Respuesta: El cucharón

10.- En una aplicación web, la aplicación autentica a los usuarios con un árbol LDAP, para ello, cada usuario tiene un atributo uid y un atributo password. El programador ha filtrado el * y utiliza la función crypt antes de usar la contraseña en una consulta AND LDAP como ésta.
V_username: valor de usuario introducido en la página web por el cliente.
V_passwd: valor de contraseña introducido en la página web por el cliente.
C_passwd =crypt(v_passwd) 
Consulta que da acceso o no a la aplicación:
(&(uid=+v_username+)(password=+c_passwd+))
¿Con qué inyección LDAP conseguirías entrar si la se está utilizando un árbol LDAP basado en OpenLDAP?

Respuesta: Or uno igual a uno ... en LDAP Injection

Saludos Malignos!

6 comentarios:

Miguel dijo...

Igualito igualito a los exámenes de SOII de Anibal...

Daniel Maldonado dijo...

Excelente chema! Me encantaria cursar ese master.

Anónimo dijo...

Menos la 3 y la 4 las otras son tiradas. Un examen fácil, no?

Anónimo dijo...

Espero que se publiquen las respuestas.... me gustaría saber cómo me ha ido !!!

Anónimo dijo...

Gracias! Buen pagina aqui tambien:

Blind sql injection vulnerability

Anónimo dijo...

Hola espero que en la universidad se enseñe que el kernel se ha de compilar de forma estática "lo digo por que centos lo lleva modular" por que por más que securizes un apache un rootkit no deja de ser un módulo del kernel y si no pones los permisos chmod a los compilers correctos te la cuelan.

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares